具体情况(觉得麻烦可直接看后面总结):
和同事用svn开发项目,同事提交了一些他自己写的测试的但与项目无关的包和类,在我把他的提交更新下来后,我把和项目无关的包和类删掉并提交了(步骤:我用的idea,先把包和类从项目和本地的svn上删掉,然后提交,选中这些颜色为灰色的已删掉的东西提交),当同事在他那边把我的提交进行更新后,问题来了:其他的提交都更新下来的,但是idea的版本控制工具中的incoming下的 “删除无用包”的提交并没用被更新下来,并且同事再次提交这些在svn上已经被删除的包时,svn报错svn: E155015: Aborting commit: XXX remains in conflict,XXX表示提交的类。这就很让人懵逼,后面按照网上搜的一些方法来也没有解决出问题,然后我和同事开始删他的本地包啊,重新写包和类啊之后一顿操作,依然没有弄好,最后决定换个包名不管这个并不影响项目的问题,中间过了一段时间,再到同事那边去看,incoming上的“删除无用包”这个待更新的部分已经没了,后面就把包名换回来提交成功了,然后开始梳理这个svn删除文件并提交后,别人无法更新此部分提交和无法提交与删除部分同名的东西这个问题,思考问题所在,并按所想复现这个问题,发现问题在于我删除文件并提交后,同事自己本地的包和类并没有删除,并且被他修改过,所以当他更新我的提交时,我的删除包和类那一部分并不能覆盖已经被他修改过的那些包和类,于是这一部分就一直在incoming中无法被更新。
总结:
A和B共用svn开发时,A和B版本一致,此时A删除了部分(无用的)包或类并将其提交到了中央版本库,
当B没有修改这些A删除了的包和类时,可以直接更新中央版本库中A的提交,达到删除B本地的那些无用的包和类,来与**中央版本库一致
当B在本地修改了这些A删除了的包和类时,就会导致无法更新中央版本库中A的提交,并且B无法提交这些已经被A删除的包和类,并且报错svn: E155015: Aborting commit: XXX remains in conflict,此时需要先将B的本地修改撤回(或版本回退)到初始状态,再来更新A的提交。