是否有列出SVN冲突的命令?


116

有谁知道SVN命令来列出存储库和工作副本之间的当前冲突?

谢谢

Answers:


168

在Linux上,如果只想查看冲突,请通过grep传递状态。

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

6
添加-A 1到grep参数将向您显示冲突行之后的行,该行有时与冲突有关。
韦斯利·哈特福德

4
-P告诉grep使用perl正则表达式,^ =字符串的开头,(?=)封闭了超前模式,即。{0,6}任何0到6个字符和字母C,这是冲突的指示
Pete

5
使用超前部分的目的是什么?不能正常'^.{0,6}C'工作吗?
hans_meine 2014年

2
要在OSX上使用同一命令,您需要安装GNU grep,因为BSD grep没有perl regex标志(-P)
G.Rassovsky 2015年

4
在Windows上,Powershell版本为(svn status) -Match '^(?=.{0,6}C)'
bstoney

28

只需使用grep!

svn st | grep '^C'

2
@sid,它是“ begins with”的正则表达式,因此意味着第一个字符是C
Joseph Lust

1
我在想这是否会丢失具有“ A + C”状态的文件..那是一个问题..
Raghav 2013年

2
egrep'^ [AC +] +'可以解决问题,尽管我通常不会遇到A + C问题。
约瑟夫·卢斯特

1
易于记住,对于大多数情况来说足够了。谢谢@JosephLust。
csonuryilmaz

11

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


在Windows SVN 1.7.8上似乎不起作用。错误日志:svn:E205001:尝试“ svn帮助”以获取更多信息svn:E205001:需要合并源
kakyo


4

对于Windows PowerShell,请使用:

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

3

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

svn status

并看到一个大写的“ C”表示冲突,但是通常您不应该在工作副本中看到这种情况。


1

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

例如,如果您当前的WC基于147版本,则可以这样做:

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

不过我自己也没做任何事,因此您必须自己尝试一下。


0

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

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

简而言之

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

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

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

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


-2

在Mac上

$ svn status | grep -e '^!'

做这份工作

这是grep的人:

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


如何匹配感叹号以帮助查找有冲突的项目?
anddam

^!是以开头的每一行的正则表达式!。所有冲突行开头!
thesummersign

2
不,我只是解决了1.9回购上的冲突,并且冲突线以“ C”开头。
anddam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.