以下のコマンドでリビジョンを取得できます。
svnversion -n ディレクトリ
指定するディレクトリは.svnディレクトリが存在しなければいけません。
-nオプションをつけると末尾の改行を出力しません。
この機能を使って今回はビルドバージョンを埋め込むようにしました。具体的なコードは面倒なので書きませんが、Antで以下の手順で処理します。
・SVNからソースを取得
・リビジョン番号を取得する
・コンパイルする→DESTディレクトリへ
・必要なファイルをDESTへコピーする
・DESTにあるXMLファイルへリビジョンを埋め込む
・WARファイルを作成する
・サーバへデプロイする
こんな感じかな。正確にはXMLの設定ファイルに「svn.revesion」みたいな定数を定義して、その値を置換しています。(このXMLファイルの設定は実行時にDIで設定保持クラスにInjectしています)
バイナリに埋め込む場合はコンパイルする前に埋め込まないといけないですね。
とりあえずは、これで共有環境のアプリがどのバージョンでコンパイルされたものなのか分かるようになりました。