将hg书签转换为命名分支

时间:2012-08-08 09:20:46

标签: git mercurial branch

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

1 个答案:

答案 0 :(得分:8)

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

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

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

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