是否可以在Mercurial中重新打开关闭的分支机构?


132

我知道可以关闭Mercurial中的命名分支,这样它就不会出现在hg branches列表中:

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

如果需要,是否可以稍后重新打开分支?


13
您应该简单地尝试一下,最好的学习方法是进行实验,并且由于汞的储存库价格便宜,因此请放心使用。
Lasse V. Karlsen

1
肮脏的小秘密:用Hg说话的“分支”只是说“与提交相关联的文本标签”的另一种方式。一个“分支”可以有许多不同的头来处理许多不相关的提交。
user2864740 2015年

Answers:


164

您可以只hg update转到关闭的分支,然后再做一个分支hg commit,它将自动重新打开。

closed标志仅用于从中过滤掉封闭的分支hg brancheshg heads除非您使用该--closed选项-它不会阻止您使用分支。


20
除非有实际要提交的内容,否则提交将不会执行任何操作,因此您可能需要进行一些无谓的更改才能实现。
弗朗西斯·阿普顿四世

1
感谢您指出这一点-我假设所做的更改隐含了更改,但是,当然,如果您只想删除已关闭的标志,则不能不进行更改。
蒂姆·德莱尼

3
标签足以使其可提交。
devlord 2013年

这可能在命令行界面上可行,但我还没有尝试过,但是TortoiseHg不允许您更新到封闭的分支。如果尝试这样做,将禁用“更新”按钮。要使其正常工作,我必须在关闭变更集(实际上是父级)之前更新到分支,然后再更新至关闭变更集。奇怪的是,当您更新到父级时,TortoiseHg声称紧密变更集(后代)是父级。不管怎样,一旦您跳了合适的圈,它就可以正常工作。
DaveN59

使用了它(通过phpstorm中的终端上的命令行),并像一个魅力一样工作,谢谢
Mathieu Dierckx

15

您可以在“创建”分支时使用“ -f”标志重新打开分支。

否,此命令将创建一个具有相同名称的新分支。

只是忘记它是关闭的。切换到分支,进行更改并提交。它将自动重新打开。完成后,您可以再次关闭它。


我认为,与Git不同,Mercurial命名分支是永久的,因此分支名称不能重复使用。我有什么困惑?我们正在谈论的同一个分支是否有多个头?
Nate Cook

2

尝试以下操作:

hg pull && hg update branch_name

现在对其中一个文件进行少量更改,然后提交

 hg commit -m "minor change"

然后推

hg push -b . 

现在您应该可以正常工作了。


-3

试试这个。

执行之前切换到关闭的分支。(hg up close_branch)

hg st

触摸一个

添加一个

hg commit -m'重新打开关闭的分支'

这将重新打开关闭的分支。


12
这是向存储库添加一个无用的空文件,这是错误的。
拉斐尔·皮科洛
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.