【转】svn——conflict问题解决
知识货栈
编辑于 2023年12月27日 05:19

解决办法:

在有冲突的目录下执行 svn resolve (解决工作副本文件或目录的冲突)查看冲突信息

情况一:local file unversioned, incoming file add upon update

目录下出现了Tree conflict,

提示:local file unversioned, incoming file add upon update(本地文件没有版本控制,传入文件在更新时添加)

就是说我本地的文件和服务器上的文件有冲突,而且我本地的文件没有commit,所以现在问我怎么处理

选择:(r)标记已解决,(p) 推迟处理,(q)退出解决,(h) 帮助

执行 r 的话就是表示冲突已经修改好了,这时svn不会覆盖你本地的文件;

执行 p 的话就是表示暂时不处理;

执行 q 就是退出解决,感觉和推迟处理差不多,就是暂时先不处理吧。

如果是需要服务器上的文件覆盖本地的文件,一般先执行 p 推迟处理,然后执行

svn revert dir(有冲突的文件目录)  ——把本地文件恢复到服务器的版本

再执行svn up进行更新

情况二:local file delete, incoming file edit upon update

提示:Tree conflict  > local file delete, incoming file edit upon update (本地文件已删除,传入文件在更新时进行编辑)

这时有五个操作选项,执行 h 查看具体操作说明:

(mc) - 保留受此删除影响的任何本地移动 [保留我的冲突]

(r) - 标记已解决,任何受影响的举动都将成为副本

(p) - 推迟解决该冲突 [推迟处理]

(q) - 推迟所有剩余的冲突

因为我没有看到有可以覆盖本地文件的选项,所有这里我的处理方法和情况一一样。

(注:如果不需要保留自己本地目录的情况下,情况一和情况二还有另一种解决办法,就是把有冲突的目录删除再svn up即可)

情况三:

这个报错就好解决了,因为选项中已经有多种操作

(p) 推迟处理,(df) 显示差异, (e) 编辑文件, (m) 合并

(mc) 保留本地的冲突文件, (tc) 保留服务器中的冲突文件

(s) 显示所有选项

因为我更新的都是别人负责的代码,所有这里我执行了(tc) 保留服务器中的冲突文件

最后全部冲突解决