处理 SVN 冲突

14

更新 SVN 代码时出现冲突,如何保留本地版本并将其提交?请问相应的命令是什么?

6个回答

24
如果你使用的是像TortoiseSVN这样的Shell客户端,那么右键单击“resolve using mine”,如@Adi所述。

在命令行上,它是:

svn resolve --accept mine-full <FILENAME>

哦,我收到了 svn: warning: W155027:树冲突只能解决为“工作”状态的警告。 - Matthew Lock

7
如果您在命令行中工作而不是使用UI界面,当您执行“svn update”时,svn会询问您类似于以下内容的信息:
在'bar.c'中发现冲突: (p) 延迟 (e) 编辑 (tf) 完全采用他们的 (mf) 完全采用我的
您需要选择的是完全采用我的(mf)。当然,这将覆盖其他人所做的任何更改,因此您可能希望选择编辑(e)。
如果您选择延迟(p),则需要稍后更改文件并将其标记为已解决(svn resolved),然后进行svn提交。

7
在命令行中:
svn resolve --accept working <FILENAME>

2

对于那些有许多冲突并且不想一个一个地解决它们的人,只需运行以下命令即可保留您所做的更改:

svn resolve . -R --accept mine-full

Related SO question


1
你们两个的问题是编辑了同一个文件的相同部分。一旦这样做,以后就会有麻烦。 SVN不进行文件级别锁定(有很好的理由!),因此假设您不会在彼此几行内同时进行更改。
如果您恰好使用Visual Studio,我一直在开发一种工具,可以突出显示其他人更改的您正在编辑的文件部分。

0

右键点击冲突的文件,选择“使用我的”。 另外一个选择是“使用他们的”。 当然,这需要用户界面。


OP 问如何通过 CLI 完成此操作。 - Alberto M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接