利用tortoiseSVN在两个版本库间merge code

需求总是奇怪的,但好在有这么一个还算顺手的工具。

我有一份code base的两个不同版本库,这两个版本库所在的server是不一样的,然后对应本地有两个不同的Working Copy。我需要把一个版本库里面做的部分变化,merge到另外一个版本库。一开始想过用SVN命令行diff,但似乎那是服务于同一个版本库的不同branch的,也就是要host在一个server上的。

幸好在小乌龟里面发现了Merge revisions to…这个功能,具体做法是:

  1. show log版本库A
  2. 选择需要提取出change的revisions,可以多选
  3. 然后右键,选择merge revisions to…
  4. 选择版本库B所在的WC
  5. 小乌龟开始替你干活,能自动Merge的会自动Merge,不能的会提示conflict

小乌龟干活有两个问题:

  1. 提示你有conflict时,你可以看到变化的对比,但有时并不真有conflict,这时可以选择使用全部覆盖或者忽略覆盖。
  2. 如果真的有conflict,注意了,即使在edit conflict时resolve conflict,目标文件也还是有问题,并未真的把conflict resolve掉,一试便知。这应该是小乌龟的bug,我用的是1.6.10。这时正确的做法是,发现的确有红色的conflict,选择resolve later,待这一轮Merge之后,逐个选择文件把conflict resolve掉。
Share
 
张凯峰

张凯峰

ThoughtWorks程序员,InfoQ中文站编辑,有多年软件开发和测试经验,热衷参与技术社区与技术传播,参与翻译《Ajax实战》、《开源技术选型手册》。

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据