需求总是奇怪的,但好在有这么一个还算顺手的工具。
我有一份code base的两个不同版本库,这两个版本库所在的server是不一样的,然后对应本地有两个不同的Working Copy。我需要把一个版本库里面做的部分变化,merge到另外一个版本库。一开始想过用SVN命令行diff,但似乎那是服务于同一个版本库的不同branch的,也就是要host在一个server上的。
幸好在小乌龟里面发现了Merge revisions to…这个功能,具体做法是:
- show log版本库A
- 选择需要提取出change的revisions,可以多选
- 然后右键,选择merge revisions to…
- 选择版本库B所在的WC
- 小乌龟开始替你干活,能自动Merge的会自动Merge,不能的会提示conflict
小乌龟干活有两个问题:
- 提示你有conflict时,你可以看到变化的对比,但有时并不真有conflict,这时可以选择使用全部覆盖或者忽略覆盖。
- 如果真的有conflict,注意了,即使在edit conflict时resolve conflict,目标文件也还是有问题,并未真的把conflict resolve掉,一试便知。这应该是小乌龟的bug,我用的是1.6.10。这时正确的做法是,发现的确有红色的conflict,选择resolve later,待这一轮Merge之后,逐个选择文件把conflict resolve掉。