我在我的分店,我这样做:
hg incoming /path/to/baseline
我在输出中得到了一些变更集。
现在我只是合并以将changsets拉入我的分支?
hg merge /path/to/baseline
我的历史记录会显示合并的内容吗? 只要我没有触摸那些文件,它就会自动生效吗?
答案 0 :(得分:2)
你应该自己尝试这一切!制作几个测试存储库:
hg init main
hg clone main clone
然后试验走了。这很容易和安全,因为你只在自己的机器上玩。 (当你在这里问一个问题时,这实际上是“幕后”发生的事情:我试图确保我给出的建议确实有效,所以我通常必须在新的存储库上运行一些测试来仔细检查。)
如果你运行测试,你会看到
您不能将hg merge
路径名称(或URL)作为参数。它需要版本作为唯一的参数。您需要hg pull /path/to/baseline
将更改集复制到本地存储库,然后hg merge
。
历史记录确实会显示合并的内容。合并在Mercurial中成为合并提交。这是一个包含两个祖先变更集的变更集 - 导致合并的两条开发线仍在存储库中。
如果两个分支中所做的更改不重叠,则合并没有冲突(“自动”)。如果您在两个分支中编辑不同的文件,那么肯定没有重叠。但您也可以编辑同一文件中的不同区域,并且仍然可以合并而不会发生冲突。
the wiki上有一个很好的教程,我也写了beginners guide。我希望有所帮助。