Java 如何在SVN中运行更新而不引起许多冲突
我正在使用SVN在一个四人团队中开发一些软件 每当我更新我的工作副本时,它产生的冲突比我预期的要多得多,其中大量冲突如下: 如果首字母是Java 如何在SVN中运行更新而不引起许多冲突,java,svn,Java,Svn,我正在使用SVN在一个四人团队中开发一些软件 每当我更新我的工作副本时,它产生的冲突比我预期的要多得多,其中大量冲突如下: 如果首字母是 import Class1 我把它改成 import Class1 import Class2 而另一个团队成员将代码更改为 import Class1 import Class3 Subversion不会合并所有三行 我想这是因为subversion不知道代码的语义内容,所以无法决定什么时候应该/不应该这样做 我遇到的另一个冲突是如果我替换 proc
import Class1
我把它改成
import Class1
import Class2
而另一个团队成员将代码更改为
import Class1
import Class3
Subversion不会合并所有三行
我想这是因为subversion不知道代码的语义内容,所以无法决定什么时候应该/不应该这样做
我遇到的另一个冲突是如果我替换
processA();
processB();
与:
if(x){
processA();
processB();
}
整个事情被标记为一个变化,没有办法让它突出这一事实,只有(x)被添加到上面/下面。在这种情况下,我必须分析新块内的整条线,并担心遗漏内部线的微小变化
问题是,我的团队是否有更有效的方法使用SVN在这些情况下,我的大部分时间都花在合并上
很抱歉,我的表达式太冗长了,谢谢阅读。因为SVN不了解编程语言,如果它试图从更改集推断语义,那将是非常危险的。因此,它只能进行相对简单的合并(即,如果文件在两个完全不同的区域发生更改)
常见的解决方案是使用小型提交。不要把大的变化堆积起来。经常犯错误。经常更新。如果您经常签入,您仍然会看到较大的更改(例如,在“If”情况下),但您没有太多的合并工作要做。尝试让开发人员处理项目中不相交的部分,以减少合并问题。如果开发人员有重叠,鼓励沟通以避免错误合并。此外,尝试尽早/经常提交,以避免大规模合并,但不允许提交导致基线无法构建。持续集成系统很有帮助。谢谢。一段时间以来,它一直在坚持,并大胆地解决了问题。