2

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

4

1 回答 1

8

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

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

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

您可以手动完成并将变更集移植或移植到新的命名分支中,但这样做会删除与 git 变更集的关联 - 如果您使用的是 hg-git 而不是转换,这很重要。尽管嫁接可能会保持一些关联,因为它是使用 hg 合并工具实现的。

于 2012-08-08T11:42:51.480 回答