【发布时间】:2010-03-10 05:33:43
【问题描述】:
注意:我在这里描述的场景在Stack Overflow: Completely manual Mercurial merge 中没有得到回答。
我将用一个例子来解释我的查询。假设我开始使用 Mercurial 存储库来设计汽车:
C:\Car$ dir
Car.cpp
Car.h
我在 Car 的设计上工作了很长一段时间,存储库看起来像:
r0-r1-...-r100-(default)
在某个时间点,我将 default 分支到 SolarCarBranch 以并行处理太阳能汽车:
C:\SolarCar$ dir
Car.cpp
Car.h
Solar.cpp
Solar.h
再过一段时间,存储库看起来像:
r0-r1-...-r100-...-r200-(default)
\--r101-...-r201-(SolarCarBranch)
如何将 SolarCarBranch 合并回 default?
注意我想要的合并中的以下复杂性:
- 我应该能够在合并后继续使用 default 和 SolarCarBranch。
- 我希望将 SolarCarBranch 中的
Car.cpp和Car.h中的燃油效率修复程序引入 default,但我不希望这些中的所有更改文件。因此,我想在合并(也称为手动合并)期间挑选出我希望包含在 default 中的更改。 - 我确实不希望
Solar.cpp和Solar.h出现在默认中。世界可能还没有为太阳能汽车做好准备。 ;-)
我学到了什么:
- 这可以通过
hg merge SolarCarBranch - 这可以通过在
Mercurial.ini中设置kdiff3.premerge=False来实现 - 我不知道如何实现这一点,因为
premerge=False仍然在未经我许可的情况下将Solar.cpp和Solar.h合并/复制到 default 中。
【问题讨论】: