オープンソースプロジェクトのマルチファイルパッチを作成しようとしていますが、作業を開始してからマスターコピーが変更されています。コミットされていないバージョンとそれがチェックされたリビジョンとの間のSVNの違い(バージョン管理下にあるファイルのみ)を取得する必要があります。違いを見つけるためにどのSVNコマンドを使用できますか?
編集: 申し訳ありませんが、「ワーキングコピー」という用語を不適切に使用していたに違いありません。コミットされていない変更を、それらが基づいているリビジョンと比較する必要があります。つまり、リビジョン1000をチェックアウトし、ファイルfoo
とbar
を変更しました。現在、リビジョン番号は最大1015ですが、foo
とbar
のバージョンをリビジョン1000のバージョンと比較する必要があります。これを行う簡単なコマンドはありますか(変更したコピーを比較してください)過去の改訂を伴うプログラムの)?
svn diff
は-rN:M
引数。デフォルトはN == BASE
およびM == working copy
。 svn 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)
...
これがあなたが求めているものだと思いますね
内容が変更されたファイル名のみのレポートを取得することが目標である場合、これでうまくいくはずです。
svn diff | grep 'Index: ' .