svn中tree conflicts错误的解决方法
svn中tree conflicts错误的解决方法svn中提交文件时出现tree conflicts错误的原因
当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生tree conflicts树冲突
如图
具体表现有如下几种
1、本地删除,更新后传入修改
产生原因:
(1)、A修改文件Foo.c后提交到版本库中,B将Foo.c重命名为Bar.c或者删除了Foo.c或者直接将Foo.c的父目录Foo直接删除 (2)、B更新工作副本会提示该冲突,在working copy显示为Foo.c在本地删除,被标记为冲突。如果是重命名,则Bar.c被标记为新增,但是不包括A的修改。
解决:A与B要确认是否采用A的修改与是否重命名。如果采用A的修改,并且要重命名则修改后,标记冲突解决,svn resolved,最后提交;如果不采用A的修改,直接标记冲突解决提交即可。
2、本地编辑,更新后传入删除
产生原因:
(1)、A对Foo.c重命名为Bar.c并提交到版本库(或者A将Foo.c的上级目录Foo修改为Bar),B在他的工作副本中对Foo.c进行修改。
(2)、B提交前更新,会提示如此错误。
解决:同样需要两个人进行协商后修改。
3、本地删除,更新后传入删除
产生原因:
(1)、A将Foo.c重命名为Bar.c后提交,B对Foo.c重命名为Bix.c。
(2)、B更新本地工作副本是会提示该树冲突。
解决:通过日志查找文件被删除即重命名的原因,A与B协商后最终确认采用哪个名称。
4、本地丢失,合并后传入修改
产生原因:
(1)、A在主干上修改Foo.c,B在分支上将Foo.c重命名为Bar.c。
(2)、B合并A在主干上的修改。
解决:B先标记冲突解决,然后将Foo.c拷贝至本地,将A的修改合并至自己的文件中或者直接放弃A的修改,采用自己的修改。
5、本地修改,合并后传入删除
产生原因:
(1)、A将Foo.c重命名为Bar.c(或者将Foo.c的父目录Foo改为Bar),B在分支上修改Foo.c。
(2)、B合并A的修改时提示该冲突。Bar.c被标记为增加,Foo.c被标记为冲突。
解决:同样根据日志查找到修改的源头,两人协商后解决。
6、本地删除,合并后传入删除
产生原因:
(1)、A在主干上将Foo.c重命名为Bar.c,B在分支上将Foo.c重命名为Bix.c。
(2)、B合并A的修改时会提示冲突。重命名后的文件被标记为新增,原来文件被标记为树冲突。
解决:通过日志查找到文件被改名的时刻,两人协商后解决。