如何在mercurial中部分合并分支?

时间:2011-11-01 19:33:43

标签: mercurial

我在mercurial A和B中有两个分支,它们都有tests.py个文件但我不想在合并A和B时合并这些文件。如何只忽略tests.py和自动合并其他一切?

1 个答案:

答案 0 :(得分:2)

我不相信在合并时可以简单地“忽略”对文件的更改。您可以做的是选择要进入合并变更集的tests.py版本(来自分支A或B的版本)并使用它。

由于hg merge保留了在工作副本中合并两个分支所导致的更改,为了让您有机会修复冲突等,您可以在提交之前恢复工作副本中的tests.py无论你想保留哪个版本。这是一个例子:

$ hg update A   # switch to branch A
$ hg merge B    # merge w/ branch B
...
$ hg status
M tests.py
M some_other_file
...
# reset tests.py to version from either branch A or B.  
# Let's pick A since that was our original parent.
$ hg revert -r A tests.py
$ hg commit

请注意,hg merge B可能会在tests.py中产生冲突,因此如果您使用hg revert -r A tests.py,则还需要将冲突标记为已使用hg resolve -m tests.py解决。