将hg书签转换为命名分支

Zau*_*bov 2 git mercurial branch

从git迁移到mercurial(不是我的个人偏好:)我遇到了一个问题:hg convert将git分支转换为书签.有没有办法将书签转换为命名的hg分支?甚至是否需要,为什么?谢谢!

Tim*_*ney 8

Git分支和hg书签本质上是相同的(对单个变更集的引用),这就是为什么它们已经被转换的原因.书签与git分支的行为非常相似 - 它们在您提交等时前进(没有跟踪分支的概念,但您可以使用remotebranches扩展获得类似的结果).许多人在Mercurial中根本不使用命名分支 - 他们使用书签和/或匿名分支.

Hg命名分支是非常不同的 - 名称是历史中不可磨灭的一部分.不可能(自动)将git分支转换为hg命名分支,因为git分支只命名分支的尖端 - 您无法知道其他变更集应该是分支的一部分.

如果你真的想从现在开始使用命名分支(我强烈鼓励它 - 我个人更喜欢让每个任务在一个单独的命名分支中完成)我建议只在每个当前书签处启动一个具有相同名称的命名分支(然后你可以删除书签).

您可以手动浏览并将变更集移植或移植到新的命名分支中,但这样做会删除与git变更集的关联 - 如果您使用的是hg-git而不是转换,则很重要.虽然移植可能会保持一定的关联,因为它是使用hg合并设施实现的.