注意:我在这里描述的场景在Stack Overflow: Completely manual Mercurial merge中没有得到回答。
我将用一个例子来解释我的查询。假设我开始使用 Mercurial 存储库来设计汽车:
C:\Car$ dir
Car.cpp
Car.h
我在 Car 的设计上工作了很长一段时间,存储库看起来像:
r0-r1-...-r100-(default)
在某个时间点,我默认分支到SolarCarBranch以并行处理太阳能汽车:
C:\SolarCar$ dir
Car.cpp
Car.h
Solar.cpp
Solar.h
再过一段时间,存储库看起来像:
r0-r1-...-r100-...-r200-(default)
\--r101-...-r201-(SolarCarBranch)
如何将SolarCarBranch合并回默认值?
请注意我想要的合并中的以下并发症:
- 合并后,我应该能够继续在default和SolarCarBranch上工作。
- 我希望将SolarCarBranch 内部
Car.cpp
和内部Car.h
的燃油效率修复程序拉入default,但是我不希望这些文件中的所有更改。所以,我想在合并(又名手动合并)期间挑选我希望包含在默认值中的更改。 - 我不想出现在default
Solar.cpp
中。世界可能还没有为太阳能汽车做好准备。;-)Solar.h
我学到:
- 这是可能的
hg merge SolarCarBranch
- 这可以通过设置来
kdiff3.premerge=False
实现Mercurial.ini
- 我不知道如何实现这一点,因为
premerge=False
仍然合并/复制Solar.cpp
并Solar.h
进入默认状态,而无需征求我的许可。