svnには、たとえばリビジョン22334で作成されたブランチがあります。その後、ブランチでコミットが行われました。
トランクにあるものと比較して、ブランチで変更されたすべてのファイルのリストを取得するにはどうすればよいですか?ブランチが作成されてから「現在」までの間にトランク上で変更されたファイルを見たくありません。
回答:
これは私が思うにそれをします:
svn diff -r 22334:HEAD --summarize <url of the branch>
svn log <url of the branch> | tail
、最小のリビジョン番号を取得するようにしています。
svn diff -r 22334
(HEADへの差分は指定されていないことに注意してください)。これにより、ローカルの作業コピーと差分が作成され、差分アプリケーション内から変更を加えることができます。
-uオプションを指定したstatusコマンドを使用して、変更されたファイルのクイックリストを取得することもできます。
svn status -u
これにより、ファイルが現在のコードベースにあるリビジョンとリポジトリ内の最新のリビジョンが表示されます。実際にファイル自体の違いを確認したい場合にのみ、diffを使用します。
これらの一般的なシナリオの多くを説明するsvnコマンドに関する優れたチュートリアルがここにあります:SVNコマンドリファレンス
svn status
ローカルの変更のみが表示されます。OPは、トランクから作成されてからブランチにコミットされたすべてのファイル変更を確認する方法を探していました。
これにより、変更されたファイルのみが一覧表示されます。
svn status -u | grep M
M
名前に含まれるファイル
svn log -q -v
パスを表示し、コメントを非表示にします。すべてのパスがインデントされているため、空白で始まる行を検索できます。その後に、パイプcut
とsort
整頓まで:
svn log --stop-on-copy -q -v | grep '^[[:space:]]'| cut -c6- | sort -u
これにより、分岐点以降、分岐で言及されているすべてのパスが取得されます。削除および追加されたファイルと、変更されたファイルが一覧表示されることに注意してください。私はこれを使用して、新しい開発者から少し厄介なブランチをレビューすることについて心配する必要があるものを取得しました。
svn log
:-D