Чи можливо знову відкрити закриту філію в Mercurial?


132

Я розумію, що в Mercurial можна закрити названу гілку, щоб вона не відображалась у hg branchesсписку:

hg commit --close-branch -m 'close badbranch, this approach never worked'

Чи можна згодом знову відкрити відділення, якщо це буде потрібно?


13
Вам слід просто спробувати, найкращий спосіб навчитися - експериментувати, а оскільки Hg сховища дешеві, просто дивіться.
Лассе В. Карлсен

1
Брудний маленький секрет: "гілка" в Hg говорять - це лише інший спосіб сказати "текстову мітку, пов'язану з комітом". "Гілка" може мати багато різних голов до багатьох різних комітетів, які не пов'язані між собою.
user2864740

Відповіді:


164

Можна просто hg updateдо закритої гілки потім зробити іншу, hg commitі вона автоматично відкриється.

closedПрапор використовується тільки для фільтра з закритих гілок з hg branchesі , hg headsякщо ви не використовуєте --closedопцію - це не заважає вам використовувати гілки.


20
Зобов’язання нічого не зробить, якщо насправді щось не буде здійснено, тому вам може знадобитися внести безоплатно зміни, щоб це відбулося.
Френсіс Уптон IV

1
Дякую, що вказали на це - я припускав, що зміни мали на увазі, виконуючи зобов’язання, але, звичайно, якщо ви просто хочете видалити закритий прапор, ви не зможете без змін.
Тім Делані

3
Тега достатньо, щоб зробити його зручним.
devlord

Це може працювати в інтерфейсі командного рядка, я його ще не пробував, але TortoiseHg не дозволить вам оновити до закритої гілки. Якщо ви спробуєте це зробити, кнопка «Оновити» відключена. Для роботи я повинен був оновитись до відділення перед закриттям набору змін (фактично батьківського), а потім оновити до закритого набору змін. Як не дивно, коли ви оновлюєтеся до батьків, TortoiseHg стверджує, що батьківський набір змін (нащадок) є батьківським. Як би там не було, це працює чудово, як тільки ви перестрибуєте через належні обручі.
DaveN59

Використовували його (командний рядок через термінал у phpstorm) і працює як шарм, дякую
Mathieu Dierckx

15

Ви можете знову відкрити гілку, використовуючи прапор "-f" під час "створення" гілки.

Ні, ця команда створить нову гілку з такою ж назвою.

Тільки забудь, що це закрито. Перейдіть на відділення, внесіть зміни та введіть. Він буде автоматично відкритий. Коли ви закінчите, можете знову закрити його.


Я подумав, що, на відміну від Git, гілки з ім'ям Mercurial є постійними, і тому імена гілок тому не можна використовувати повторно. Що я плутаю? Чи ми говоримо про кілька головок для однієї галузі?
Нейт Кук

2

спробуйте з наступним:

hg pull && hg update branch_name

Тепер внесіть невелику зміну до одного з файлів, а потім скопіюйте

 hg commit -m "minor change"

потім натисніть на нього

hg push -b . 

Тепер ви повинні мати можливість нормально працювати.


-3

Спробуйте це.

Перед виконанням роботи переключіться на закриту гілку. (hg up closed_branch)

hg вул

торкніться a

додати а

hg commit -m 'повторне відкриття закритої гілки'

Це знову відкриє закриту гілку.


12
Це додавання непотрібного порожнього файлу до сховища, це неправильно.
Рафаель Пікколо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.