第5章 SubWCRev プログラム

目次

SubWCRev コマンドライン
キーワード置換
キーワード例
COM インターフェイス

SubWCRev は、Subversion の作業コピーの状態を読み取り、オプションでテンプレートファイルのキーワード置換を行うのに使用する、Windows コンソールアプリケーションです。ビルドプロセスの一部として、ビルドするものに作業コピーの情報を組み込むのにしばしば使用します。典型的なのは、About ボックスにリビジョン番号を含めるのに使用することでしょう。

SubWCRev コマンドライン

SubWCRevは、デフォルトで作業コピーの外部参照を除いた全ファイルの Subversion の状態を読み込みます。検出した最も大きいコミットリビジョン番号を記録し、そのリビジョンのコミットのタイムスタンプが、それはまた、作業コピーの変更、または更新リビジョンが混在しているかどうかを記録します。リビジョン番号や更新リビジョン範囲、変更状態を標準出力に出力します。

コマンドラインやスクリプトから SubWCRev.exe を呼び出し、コマンドラインパラメーターで制御します。

SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]

WorkingCopyPath はチェックする作業コピーのパスです。SubWCRev は作業コピーのみで使用でき、直接リポジトリを扱えません。作業コピーへのパスは、絶対パス、相対パスどちらでもかまいません。

リポジトリリビジョンや URL といったフィールドをテキストファイルに保存するため、SubWCRev がキーワード置換を行うようにしたい場合があります。その場合、テンプレートファイル SrcVersionFile や、テンプレートの置換バージョンを含む出力ファイル DstVersionFile を用意する必要があります。

SubWCRev の動作に影響を与えるオプションスイッチが多数あります。複数を使用する場合は、1つにグループ化して指定する必要があります。例えば、 -n -m ではなく、 -nm と指定します。

表5.1 使用できるコマンドラインスイッチ一覧

切り替え説明
-nこのスイッチが与えられた場合、SubWCRev は ERRORLEVEL 7 で終了します。このとき作業コピーにはローカルの変更が含まれています。これは、コミットしていない変更が残っていたまま構築するのを防ぎます。
-mこのスイッチが与えられた場合、SubWCRev は ERRORLEVEL 8 で終了します。このとき作業コピーはリビジョンが混ざった状態です。これは、作業コピーに一部が更新された状態で構築するのを防ぎます。
-dこのスイッチが与えられた場合、先方のファイルがすでに存在すれば SubWCRev は ERRORLEVEL 9 で終了します。
-fこのスイッチが与えられた場合、SubWCRev はフォルダーの最後に変更したリビジョンを含みます。デフォルトでは、リビジョン番号を取得する時のファイルのみ使用します。
-eこのスイッチが与えられた場合、SubWCRev は同じリポジトリからだけでなく、svn:externals が含まれているかディレクトリを検査します。
-xこのスイッチが与えられた場合、SubWCRev はリビジョン番号を 16 進数で出力します。
-Xこのスイッチが与えられた場合、SubWCRev はリビジョン番号を「0X」で始まる十六進数で出力します。