首页 » php程序 ▪ 插件

svn中提交文件时出现tree conflicts错误的原因

   发表于:php程序 ▪ 插件评论 ()   热度:1719

svn中提交文件时出现tree conflicts错误的原因

当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生tree conflicts树冲突

Summary of conflicts:
Tree conflicts: 1

具体表现有如下几种

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的修改时会提示冲突。重命名后的文件被标记为新增,原来文件被标记为树冲突。

解决:通过日志查找到文件被改名的时刻,两人协商后解决。

(。・v・。)
喜欢这篇文章吗?欢迎分享到你的微博、QQ群,并关注我们的微博,谢谢支持。