Можно ли повторно открыть закрытую ветку в Mercurial?

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

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

Можно ли позже повторно открыть филиал, если это будет необходимо?


person Lóránt Pintér    schedule 04.11.2010    source источник
comment
Вы должны просто попробовать это, лучший способ научиться — это экспериментировать, и, поскольку репозитории с Hg дешевы, просто сходите с ума.   -  person Lasse V. Karlsen    schedule 04.11.2010
comment
Небольшой грязный секрет: ветка на языке Hg — это просто еще один способ сказать текстовую метку, связанную с фиксацией. Ветка может иметь много разных головок для множества разных коммитов, которые не связаны между собой.   -  person user2864740    schedule 09.12.2015


Ответы (4)


Вы можете просто hg update перейти в закрытую ветку, а затем сделать еще hg commit, и она автоматически снова откроется.

Флаг closed просто используется для фильтрации закрытых ветвей из hg branches и hg heads, если вы не используете опцию --closed — это не мешает вам использовать ветки.

person Tim Delaney    schedule 04.11.2010
comment
Коммит ничего не сделает, если не будет чего на самом деле зафиксировать, поэтому вам может потребоваться внести необоснованное изменение, чтобы это произошло. - person Francis Upton IV; 09.05.2011
comment
Спасибо, что указали на это - я предположил, что изменения подразумеваются выполнением коммита, но, конечно, если вы просто хотите удалить закрытый флаг, вы не можете без изменений. - person Tim Delaney; 09.06.2011
comment
Тега достаточно, чтобы сделать его фиксируемым. - person devlord; 26.03.2013
comment
Это может работать из интерфейса командной строки, я еще не пробовал, но TortoiseHg не позволит вам обновиться до закрытой ветки. Если вы попытаетесь это сделать, кнопка «Обновить» будет отключена. Чтобы заставить это работать, мне пришлось обновить ветку до закрытия набора изменений (фактически родителя), а затем обновить до закрытия набора изменений. Странно то, что когда вы обновляете до родителя, TortoiseHg утверждает, что близкий набор изменений (потомок) является родителем. Как бы то ни было, он отлично работает, как только вы прыгаете через правильные обручи. - person DaveN59; 07.10.2015
comment
Использовал его (командная строка через терминал в phpstorm) и работает как шарм, спасибо - person Mathieu Dierckx; 11.12.2017

Вы можете повторно открыть ветку, используя флаг «-f» при «создании» ветки.

Нет, эта команда создаст новую ветку с тем же именем.

Просто забудьте, что он закрыт. Переключитесь на ветку, внесите изменения и зафиксируйте. Он будет автоматически повторно открыт. Когда вы закончите, вы можете закрыть его снова.

person Rafael Piccolo    schedule 14.10.2011
comment
Я думал, что, в отличие от Git, именованные ветки Mercurial являются постоянными, и поэтому имена ветвей нельзя использовать повторно. Что я путаю? Это несколько голов для одной и той же ветки, о которой мы говорим? - person Nate Cook; 06.02.2015

попробуйте следующее:

hg pull && hg update branch_name

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

 hg commit -m "minor change"

затем нажмите его

hg push -b . 

Теперь вы должны быть в состоянии нормально работать.

person Dipendra    schedule 28.07.2016

Попробуй это.

Перед выполнением переключитесь на закрытую ветку. (привет закрытая_ветвь)

hg st

коснуться

добавить

hg commit -m 'повторное открытие закрытой ветки'

Это снова откроет закрытую ветку.

person Geetanjali    schedule 04.09.2013
comment
Это добавление бесполезного пустого файла в репозиторий, это неправильно. - person Rafael Piccolo; 15.02.2015