SVNの競合を一覧表示するコマンドはありますか?


116

リポジトリと作業コピーの間の現在の競合を一覧表示するSVNコマンドを知っている人はいますか?

ありがとう

回答:


168

Linuxでは、競合のみを表示したい場合は、grepを介してステータスをパイプします。

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

6
-A 1grep引数に追加すると、競合に関連している場合がある競合行の後の行が表示されます。
Wesley Hartford

4
-Pはgrepにperl regexを使用するように指示します。^ =文字列の先頭、(?=)は。{0,6}の0〜6文字の先読みパターンと、競合の指標である文字Cを囲みます
Pete

5
先読みパーツを使用する目的は何ですか?できませんでした'^.{0,6}C'としても動作しますか?
hans_meine 2014

2
OSXで同じコマンドを使用するには、BSD grepにperl regexフラグ(-P)がないため、GNU grepをインストールする必要があります
G.Rassovsky

4
Windowsでは、こののPowerShellのバージョンがある(svn status) -Match '^(?=.{0,6}C)'
bstoney

28

grepを使用してください!

svn st | grep '^C'

2
@sid、それは「で始まる」の正規表現なので、最初の文字はCです
ジョセフ・ラスト

1
これは「A + C」のステータスを持つファイルを欠場することができれば、私は考えていた。..ですその問題..
ラガフ

2
egrep '^ [AC +] +'でうまくいきますが、通常はA + Cの問題はありません。
Joseph Lust

1
覚えておくのは簡単で、ほとんどの場合十分です。@JosephLustに感謝します。
csonuryilmaz

11

svn merge -r <revision> --dry-runそのように何が起こるかを試してみることができます。


Windowsのsvn 1.7.8では動作しないようです。エラーログ:svn:E205001:詳細については「svn help」を試してくださいsvn:E205001:Merge source required
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は競合(C)ステータスをマークしません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 pattern] [-f file] [--binary-files = value] [--color = when] [--context [= num]] [--directories = action] [--label] [--line-buffered] [--null] [pattern] [file ...]


感嘆符を一致させると、競合するアイテムを見つけるのに役立ちますか?
anddam

^!で始まるすべての行の正規表現です!。競合するすべての行は次で始まります!
thesummersign

2
いいえ、1.9リポジトリで競合を解決しただけで、競合の行は「C」で始まっていました。
anddam
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.