今天在使用svn合并分支代码是遇到a分支合并到b分支时,a分支与b分支有差异的文件无法合并到b分支上,对此感到很奇怪。后来才知道,svn管理的是提交的修改记录,并且是以行为单位进行管理的,它只会对每次修改的行内容进行检测,若是对没有修改的但又有差异的文件内容它不会对其进行差异检测,所以当自己把a分支上的内容合并到b分支时,它只会合并你当前修改的记录,并不会吧其他的差异内容合并上去。
所以导致我从a分支将代码合并到b分支时,并没有发现b分支带有有差异,最后在提交的时候才发现,合并到b分支的代码只有我本次在a分支上修改的代码,而其他有差异的代码并没有合过来,导致a分支上的代码和b分支的代码不同步。很明显我应该要把b分支的代码与a分支同步,否则就没有开发的意义。而要使b分支与a分支同步,目前要想使用svn解决是否不太可能,我们只有手动将差异文件进行同步从新提交了。
让b分支的代码与a分支代码同的解决方案:1,将需要同步的文件拷贝并替换掉原b分支的文件,从新提交a分支即可。2,使用beyond文件比较工具,比较a分支文件与b分支文件内容,根据需要将有差异的内容进行同步处理(比较推荐的方式,可以看到文件的差异内容)。然后从新提交b分支代码即可。如果在做同步时并没有完全以a分支为标准,a分支也做了修改,那么做好也从新提交一下a分支的代码。
说明:此文中a分支与b分支其实分别代表本人在开发中的开发分支与集成分支。