是否有人知道一个 SVN 命令来列出回购和工作副本之间的当前冲突?
谢谢
你可以试试 svn merge -r <revision> --dry-run,看看会发生什么。
svn merge -r <revision> --dry-run
也许可以使用 svn merge --dryrun,同时指定存储库 URL,并在最新更新的版本之后进行所有修订。
svn merge --dryrun
例如,如果你现在的 WC 是基于147修订版,这个可以做到:
svn merge -r 148:HEAD http://url.to.repo/repo/
我自己什么都没做过,所以你得自己试试。
If you have already merged you can use
svn status
看到一个大写的“ C”表示冲突,但通常你不应该在你的工作副本中看到这种类型。
在 Linux 上,如果您只想看到冲突,那么可以通过 grep 管道显示状态。
svn status | grep -P '^(?=.{0,6}C)'
如果您从 http://betterthangrep.com/获得了 ack,可以执行以下操作
svn st | ack '^C'
使用 grep!
svn st | grep '^C'
在 Mac 上
$ svn status | grep -e '^!'
did the job
Grep 的人来了:
用法: grep [-abcDEFGHhliJLlmnOoqRSsUVvwxZ ][-A num ][-B num ][-C [ num ]] [-e pattern ][-f file ][—— binary-files = value ][—— color = when ] [—— context [ = num ]][—— directory = action ][—— label ][—— line-buffer ] [—— null ][ pattern ][ file... ]
For Windows PowerShell use:
svn status | sls -Pattern '^(?=.{0,6}C)'
如果没有合并或更新文件,请使用以下命令
svn status --show-updates | grep -P '.*(?=.*M)(?=.*\*).*'
简而言之
svn st -u | grep -P '.*(?=.*M)(?=.*\*).*'
细节 在使用 svn update更新文件之前,SVN 不会标记冲突(C)状态。 Until then statuses are shown like below
svn update
+---+------+---------------+---------------+ | M | | | 23246 file1 | +---+------+---------------+---------------+ | | | * | 23233 file2 | +---+------+---------------+---------------+ | M | * | 23233 file3 | | +---+------+---------------+---------------+
本地修改 *-远程更新/传入 M 和 *-在 local 和 remote 中修改-< strong > 这是一个冲突,但 svn 还没有标记