如何在SVN中运行更新而不会引起许多冲突

Ben*_*age 0 java svn

我正在使用SVN在一个由四人组成的团队中开发一些软件.

每当我更新我的工作副本时,它会产生比我预期的更多冲突,大量的冲突就像这样:

如果是最初的

 import Class1
Run Code Online (Sandbox Code Playgroud)

我把它改成了

import Class1
import Class2
Run Code Online (Sandbox Code Playgroud)

而另一个团队成员将代码更改为

import Class1
import Class3
Run Code Online (Sandbox Code Playgroud)

Subversion不会合并所有三行.

我想这是因为subversion不知道代码的语义内容,因此无法决定何时/不适合这样做.

我得到的另一个冲突是如果我更换

processA();
processB();
Run Code Online (Sandbox Code Playgroud)

用:

if(x){
  processA();
  processB();
}
Run Code Online (Sandbox Code Playgroud)

整个事情被标记为一个变化,没有办法让它突出显示只有(x)被添加到上方/下方的事实.在这样的情况下,我必须分析新块内的整行,并担心遗漏内部线条的微小变化.

问题是,在这些情况下,我的团队是否有更有效的方式使用SVN,我的大部分时间用于合并.

很抱歉因为我的表情如此长久,感谢阅读.

Joa*_*uer 6

由于SVN不了解编程语言,如果它试图从变更集中推断出语义,那将是非常危险的.因此,它只能进行相对简单的合并(即,如果文件在两个完全不同的区域中更改).

常见的解决方案是使用小提交.不要让重大变化堆积起来.经常提交.经常更新.