有没有人知道SVN命令列出回购和工作副本之间的当前冲突?
由于
答案 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 ...]