是否有命令列出SVN冲突?

时间:2010-05-21 14:11:50

标签: svn

有没有人知道SVN命令列出回购和工作副本之间的当前冲突?

由于

9 个答案:

答案 0 :(得分:160)

在Linux上,如果您只想查看冲突,请通过grep管道状态。

svn status | grep -P '^(?=.{0,6}C)'

答案 1 :(得分:28)

只需使用grep!

svn st | grep '^C'

答案 2 :(得分:11)

您可以尝试svn merge -r <revision> --dry-run,看看会发生什么。

答案 3 :(得分:4)

如果您有来自http://betterthangrep.com/的确认,则可以执行以下操作

svn st | ack '^C'

答案 4 :(得分:3)

如果您已经合并,可以使用

svn status

并且看到一个大写的“C”表示冲突,但通常你不应该在工作副本中看到这种类型。

答案 5 :(得分:3)

对于Windows PowerShell,请使用:

svn status | sls -Pattern '^(?=.{0,6}C)'

答案 6 :(得分:1)

在更新最新版本之后,可以使用svn merge --dryrun同时指定存储库URL以及所有修订版。

E.g。如果您当前的WC基于修订版147,则可以这样做:

svn merge -r 148:HEAD http://url.to.repo/repo/

虽然我自己也没做过,所以你必须自己尝试一下。

答案 7 :(得分:0)

如果您尚未合并或更新文件,请使用以下命令

svn status --show-updates | grep -P '.*(?=.*M)(?=.*\*).*'

简而言之

svn st -u | grep -P '.*(?=.*M)(?=.*\*).*'

详细信息
除非您使用svn update更新文件,否则SVN不会标记为冲突(C)状态。
在此之前,状态显示如下

+---+------+---------------+---------------+
| M |      |               | 23246   file1 |
+---+------+---------------+---------------+
|   |      | *             | 23233   file2 |
+---+------+---------------+---------------+
| M |    * | 23233   file3 |               |
+---+------+---------------+---------------+

M-在本地修改
*-远程更新/传入
M和*-在本地和远程修改-这是冲突,但svn尚未标记

答案 8 :(得分:-2)

在mac

$ svn status | grep -e '^!'

完成了这项工作

这是grep的男人:

  

用法:grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C [num]]       [-e pattern] [-f file] [--binary-files = value] [--color = when]       [--context [= num]] [--directories = action] [--label] [ - line-buffered]       [--null] [pattern] [file ...]