Svn Subversion:发生冲突时更新失败?

Svn Subversion:发生冲突时更新失败?,svn,command-line,merge,conflict,Svn,Command Line,Merge,Conflict,有没有办法告诉subversion“更新/合并,除非它会导致冲突” 我知道您可以在运行更新之前使用--dry run/status-u进行检查,但我经常让其他人运行更新并获得损坏的网页,因为他们没有注意到“C index.php”行 我还注意到svn似乎对冲突并不太不满意——它仍然会说“更新到修订版”之类的话,并且不管冲突如何,它都会退出零。所以我必须逐行解析输出来发现它们。肯定有更好的方法吗?也许更好的方法是使用图形工具?或者编写脚本执行更新,将输出重定向到文件,并在最后执行“cat svnu

有没有办法告诉subversion“更新/合并,除非它会导致冲突”

我知道您可以在运行更新之前使用
--dry run
/
status-u
进行检查,但我经常让其他人运行更新并获得损坏的网页,因为他们没有注意到“C index.php”行


我还注意到svn似乎对冲突并不太不满意——它仍然会说“更新到修订版”之类的话,并且不管冲突如何,它都会退出零。所以我必须逐行解析输出来发现它们。肯定有更好的方法吗?

也许更好的方法是使用图形工具?或者编写脚本执行更新,将输出重定向到文件,并在最后执行“cat svnupdate.log | grep“^C”以显示任何冲突


使用我使用的图形工具(OrtoiseSVN和Netbeans),它们在最后会发出令人讨厌的噪音,并为您提供一个用于处理它们的合并选择对话框。我不知道有哪一个命令行工具具有如此强大的功能。

@jsight:TortoiseSVN很棒,但我主要是在*NIX环境中开发的,没有X。因此我通常使用(仅限于)命令行


在你的脚本建议中,这就是我现在正在做的事情——这就是为什么我很恼火不能只检查$?。现在我正在跳过“输出到文件”并使用管道,但在其他方面与您描述的完全相同。

您可以使用--diff3 cmd参数指定要使用的合并工具(通常是diffutils中的diff3).

您还可以使用预提交脚本来查找文件中的冲突标记,并在存在冲突标记时阻止提交。

您可以使用--accept参数来指示发生冲突时应执行的操作:

--accept ARG             : specify automatic conflict resolution action
                          ('postpone', 'base', 'mine-full', 'theirs-full',
                          'edit', 'launch')
另请参见svnbook中的页面,Subversion 1.5(最近发布)添加了一些功能,可以使用“-accept”参数指定更新冲突期间发生的情况