从父分支合并,hg传入路径/到/基线,我如何合并?

时间:2012-03-02 20:15:54

标签: mercurial merge

我在我的分店,我这样做:

hg incoming /path/to/baseline

我在输出中得到了一些变更集。

现在我只是合并以将changsets拉入我的分支?

hg merge /path/to/baseline

我的历史记录会显示合并的内容吗? 只要我没有触摸那些文件,它就会自动生效吗?

1 个答案:

答案 0 :(得分:2)

你应该自己尝试这一切!制作几个测试存储库:

hg init main
hg clone main clone

然后试验走了。这很容易和安全,因为你只在自己的机器上玩。 (当你在这里问一个问题时,这实际上是“幕后”发生的事情:我试图确保我给出的建议确实有效,所以我通常必须在新的存储库上运行一些测试来仔细检查。)

如果你运行测试,你会看到

  1. 您不能将hg merge路径名称(或URL)作为参数。它需要版本作为唯一的参数。您需要hg pull /path/to/baseline将更改集复制到本地存储库,然后hg merge

  2. 历史记录确实会显示合并的内容。合并在Mercurial中成为合并提交。这是一个包含两个祖先变更集的变更集 - 导致合并的两条开发线仍在存储库中。

  3. 如果两个分支中所做的更改不重叠,则合并没有冲突(“自动”)。如果您在两个分支中编辑不同的文件,那么肯定没有重叠。但您也可以编辑同一文件中的不同区域,并且仍然可以合并而不会发生冲突。

  4. the wiki上有一个很好的教程,我也写了beginners guide。我希望有所帮助。