web-dev-qa-db-ja.com

作業コピーと任意のrevのsvndiffを見つけるにはどうすればよいですか?

オープンソースプロジェクトのマルチファイルパッチを作成しようとしていますが、作業を開始してからマスターコピーが変更されています。コミットされていないバージョンとそれがチェックされたリビジョンとの間のSVNの違い(バージョン管理下にあるファイルのみ)を取得する必要があります。違いを見つけるためにどのSVNコマンドを使用できますか?

編集: 申し訳ありませんが、「ワーキングコピー」という用語を不適切に使用していたに違いありません。コミットされていない変更を、それらが基づいているリビジョンと比較する必要があります。つまり、リビジョン1000をチェックアウトし、ファイルfoobarを変更しました。現在、リビジョン番号は最大1015ですが、foobarのバージョンをリビジョン1000のバージョンと比較する必要があります。これを行う簡単なコマンドはありますか(変更したコピーを比較してください)過去の改訂を伴うプログラムの)?

19
Evan Kroske

svn diff-rN:M引数。デフォルトはN == BASEおよびM == working copysvn diff -r REVここで、REVは、機能させたくないリビジョンですか?

あなたの編集に答えるために、あなたが以下を持っていると仮定してください:

$ ls
foo bar baz
$ svn st -u
Status against revision:    1071
$ echo "more stuff" >> foo
$ svn diff -r 1000 foo
Index: foo
===================================================================
--- foo  (revision 1000)
+++ foo  (working copy)
...

これがあなたが求めているものだと思いますね

9
ezpz

内容が変更されたファイル名のみのレポートを取得することが目標である場合、これでうまくいくはずです。

svn diff | grep 'Index: ' .
0
user2619792