web-dev-qa-db-ja.com

2つのリビジョン間でSVNコマンドラインから変更されたファイルを取得する

SVNの2つのリビジョン間で変更されたファイルのリストを取得する必要があります。

次のコマンドを使用しました。

svn diff -r 5001:6001 --summarize https://svn.blah.com/../  > output.txt

何らかの理由で、リビジョン5001で変更されたファイルは出力テキストファイルに取り込まれません。

2つのリビジョン(fromとtoリビジョンを含む、つまりリビジョン5001とリビジョン6001を含む)間のファイルリストを抽出する正確なコマンドは何ですか?

36
Madhan

代わりにsvn diff -r 5000:6001を試してください。これを理解するために、以下を考慮してください:svn diff -r 100:100の出力はどのように見えるでしょうか?リビジョンが同じであるため、変更は表示されません。リビジョン100の変更を確認するには、-r 99:100を使用する必要があります。

53

すべての変更が必要な場合、Dirk-Willem van Gulikの答えは完璧です。ただし、ファイルのリストのみを変更する場合は、コマンドにappend --summarizeスイッチを追加します。

svn diff -r 13447:HEAD
8

svn log -r 5000:6001 -vファイルのリストを取得します。これにより、リビジョン番号で分類されたファイルのリストが表示されます。そのため、どのファイルがどのリビジョンになったのかが一目でわかります。

8
subbu

svn diff -r v1:v2 --summarize | awk '{print $2}' > filelist.txt

説明:

svn diff -r v1:v2 --summarizeは、タブ文字で区切られたファイルのステータスと名前を提供します。タブ文字の後の文字列を選択する必要があります-2番目のフィールド。 awkを使用してこれを実行し、出力をfilelist.txtにリダイレクトできます。

7
Ankur