mercurial - 您可以关闭Mercurial分支而不先更新吗?

标签 mercurial branch

我知道您可以通过以下方式关闭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/

相关文章:

Mercurial:带参数的别名

mercurial - 如何启用 Mercurial 主题(它是 "live"功能吗)?

mercurial - 重命名 TortoiseHG 中的默认分支

svn - Tortoise SVN 合并两个分支

mercurial - 在 Mercurial 中切换默认分支

repository - Mercurial-是否可以在同一仓库中 merge 从主干到分支的更改?

mercurial - 如何告诉 Mercurial 在特定目录中任何文件的 merge 冲突期间自动接受 "their"版本?

git - 锁定 Git 分支

git - 如何在 GitHub 中仅使用我的分支存储库的主分支中的最新提交执行 pull 请求

tfs - 在 TFS2008 中重新设置分支的父级