为什么Mercurial有时允许与祖先合并?

Jeg*_*sch 2 merge mercurial branch dvcs

我对这个回购历史感到困惑。在该页面上,您将看到一个小分支file-contentdefault即使一个头是另一个头的祖先,该分支也会合并回到该分支。

当我尝试做类似的事情时,除非出现错误消息,否则

  1. 侧分支关闭并且
  2. 我从祖先合并到封闭的分支头(但相反)。(在此抓取回购中,file-content分支标记为不活动,未关闭。)

编辑:我的答案中描述了可以与祖先合并的实际条件。

那么这是怎么回事?

Jeg*_*sch 5

奇怪的是,该文档的文献很少,但是,如果您点击https://www.mercurial-scm.org/wiki/Merge底部的链接,则会发现反对与祖先合并的规则存在例外。正如我最初推测的那样,它不需要后代成为封闭的分支。代替:

  1. 您必须从祖先合并(即,工作目录必须更新到祖先,而不是其他变更集)
  2. 工作目录的父级和与之合并的变更集的分支名称必须不同。例如,一个具有分支名称默认值,另一个具有分支名称功能-X

因此,这使我们能够启动一个新分支并将其合并回去,即使在此期间我们不在原始分支上进行任何工作。