我正在使用SVN在一个由四人组成的团队中开发一些软件.
每当我更新我的工作副本时,它会产生比我预期的更多冲突,大量的冲突就像这样:
如果是最初的
import Class1
我把它改成了
import Class1 import Class2
而另一个团队成员将代码更改为
import Class1 import Class3
Subversion不会合并所有三行.
我想这是因为subversion不知道代码的语义内容,因此无法决定何时/不适合这样做.
我得到的另一个冲突是如果我更换
processA(); processB();
用:
if(x){ processA(); processB(); }
整个事情被标记为一个变化,没有办法让它突出显示只有(x)被添加到上方/下方的事实.在这样的情况下,我必须分析新块内的整行,并担心遗漏内部线条的微小变化.
问题是,在这些情况下,我的团队是否有更有效的方式使用SVN,我的大部分时间用于合并.
很抱歉因为我的表情如此长久,感谢阅读.
由于SVN不了解编程语言,如果它试图从变更集中推断出语义,那将是非常危险的.因此,它只能进行相对简单的合并(即,如果文件在两个完全不同的区域中更改).
常见的解决方案是使用小提交.不要让重大变化堆积起来.经常提交.经常更新.