IT技术博客大学习 共学习 共进步

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

IDEAL Garden 2010-09-27 00:12:11 浏览 4,861 次

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

我有一份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掉。

建议继续学习

  1. 最近总结的一些技巧(vim,python,svn,fiddler等) (阅读 8,102)
  2. awk命令,实现文件的合并与拆分 (阅读 6,961)
  3. SVN Hook造成SVN提交速度慢的问题 (阅读 6,163)
  4. GIT和SVN之间的五个基本区别 (阅读 5,742)
  5. 为何改用Git (阅读 4,861)
  6. 让虚拟主机也用上SVN:适用于个人的开发部署方式 (阅读 4,700)
  7. 分享一个固定时间自动更新svn的简单shell脚本 (阅读 4,143)
  8. 在服务端合并和压缩JavaScript和CSS文件 (阅读 4,140)
  9. 有关 SVN、Cygwin 和 Notepad++ (阅读 3,941)
  10. 本地搭建SVN服务 (阅读 3,400)