2

我注意到一个问题:
在 Mercurial 中,书签旨在用于功能分支,并且相当于 Git 中的分支。但是在 Git 中,修订版总是有一个关于它属于哪个分支的信息。所以在 Git 中,我们总是可以说功能工作何时开始以及何时完成。

在 Mercurial 中 - 书签仅指向一个提交,因此我们无法说出功能分支实际开始的位置,并且我们无法将该功能分支合并回来(因为修订版将与我们要合并的修订版属于同一分支)。这只有在使用命名分支时才有可能,但它们对于功能分支来说“很重”,而书签似乎太“轻量级”了。

该问题的常见解决方案是什么,以及 Mercurial 中如何正确地进行特征分支?

upd:
我想要实现的大致工作流程是:
- 将新的无意义提交设为默认值
- 更新到先前的提交,并进行与该功能相关的提交
- 然后与无意义的提交合并,并使用合并结果对其进行修改。

4

1 回答 1

3
  1. Git 的“分支”和 Mercurial 的书签是完全等价的,只有一个小例外(与“轻量级分支”无关):Git 分支默认拉|推,Mercurial 书签是本地的,只有在明确定义时才能拉|推
  2. 您对 Git 变更集的元数据有误解 - 它们不包含非提示变更集所属的分支名称
  3. 您始终可以将书签合并到任何分支的任何其他 HEAD(或非头),并且您不需要知道特征分支的起点才能做到这一点:直到合并点和hg merge <bookmark>
  4. 在“使用书签进行分支”的一部分中阅读 Steve Losh 的“Mercurial 分支指南”
于 2013-09-27T20:09:34.140 回答