2008-03-18
■[Tech]Subversionで更新ファイル一覧を取得する方法

パッチビルドを行いたい場合など、あるリビジョン間で、更新されたファイルだけを一覧で取得したいケースがあります。
これは、Subversionのsvnコマンドだけではできません。
svnコマンドで、diffの機能はあるのですが、これは、ファイル一覧を取得するのではなく、内容の差分を出力することになります。
ただ、TortoiseSVNを利用すると、ファイルの一覧をエクスポートできます。
http://muumoo.jp/news/2008/02/29/0tortoisesvnexport.html
- 作業コピーのルートのディレクトリを右クリックして、「TortoiseSVN」メニューから「ログを表示」。
- ログが出るので、比較したいリビジョンを選ぶ。Ctrlキーを使って、2つ選ぶ。3つ以上選ぶとダメ。
- 右クリックして、「リビジョンを比較」。
- 比較結果が出るので、エクスポートしたいファイル選択する(通常は全部選択すると思う)。
- 右クリックして、「選択をエクスポート」。
- エクスポート先を指定して、できあがり。
ウチの会社の場合、ミッションクリティカルなシステム開発が多いので、運用後に変更が必要となった場合に、フルビルドしたjarファイルをリリースするのはなかなか許可されません。
影響範囲外でバイナリでの差分がないことを証明するか、全試験が必要となってしまいます。
そのため、パッチリリースができるこの方法は便利!
トラックバック - http://d.hatena.ne.jp/szk-takanori/20080318/1205851938

#使ってなかったら忘れてしまって調べるのに苦労しました。
出力結果は、
$ svn diff -r 142:143 | diffstat
file1.txt | 442 ----------------------------------------------------------
file2.txt | 273 +++++++++++++++++++++++++++++++++++
2 files changed, 273 insertions(+), 442 deletions(-)
みたいな感じ。
ファイル名の一覧ではなく、ファイル自体を取得したかったので、diffstatではニーズが満たせませんでした。