之前一直对svn的原理了解的不是很透彻,今天有幸得一位同事帮助,明白了其中一种分支合并冲突的解决办法。
场景如下:
客户端工具:tortoiseSvn
分支情况:
要求:分支2是从分支1上建立的分支。现在分支1发布后已经合并到主干。分支2还在继续开发,期望更新分支1所有的变化。
问题:如图,如果直接从主干上更新到分支2,会报很多文件树冲突。如何解决这个问题呢。
办法:我是这么做的,把分支1的变化全部更新到分支2,然后再从主干更新。从主干更新时,选择第一个更新
然后一定要选
上图,这个选项。这个选项的意思是只合并记录,但不合并内容。(因为分支2已经更新过分支1了,所以和主干上的内容是一模一样的)
PS:最后一步更新主干,需要对比所有文件,比较费时。还有一种捷径,就是手动修改分支下的svn合并信息。这样,省去了比较的麻烦。(新手不建议手动修改)
下面先看svn合并信息,在分支2目录右键--》属性--》选择Subversion页签--》点击Perperties...按钮--》在弹出框里双击svn:mergeinfo属性。
看到诸如这样的合并记录信息,其实这个就是在该分支上所有的合并信息。像我们刚才那样只要求更新主干合并信息,而不需要合并内容的操作。只需要把主干的路径加上需要合并的版本号就可以了。大家不妨试试。
说的比较简略,有什么问题,大家再探讨。