我知道您可以通过以下方式关闭Mercurial分支机构:
hg update rev-number
hg commit --close-branch -m "Closing branch."
但是,我使用的某些存储库相当大,几年前发现我想关闭一个松散的分支后,首先对其进行更新可能需要花费几分钟(如果不是几个小时),只能执行一次提交然后更新回到我以前的工作版本(更多的时间,如果不是几个小时的话)。
所以我的问题是,有没有办法在不先将工作目录更新为分支修订的情况下关闭Mercurial分支?
最佳答案
是的,您可以,但是任何地方都没有记录。我已经使用这种技术很长时间了,不用担心,它很安全。
代替更新,您可以发出以下命令
hg debugsetparent <revision>
hg branch <branchOfRevision>
请注意,顺序很重要。这将使您的存储库以为它是在新修订版上,而所有文件都来自初始版本。之后,可以使用
--close-branch
提交,但可以使用-X *
选项进行空提交。hg commit --close-branch -X * -m "Closing branch."
现在,就像什么都没发生一样,只需回到以前的头脑即可。
hg debugsetparent <InitialRevision>
hg branch <branchOfInitialRevision>
最后,如果您有子仓库,则可能要在提交
.hgsub
之前临时重命名--close-branch
文件,然后再重命名。
关于mercurial - 您可以关闭Mercurial分支而不先更新吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23122183/