SubWCRev は、Subversion の作業コピーの状態を読み取り、オプションでテンプレートファイルのキーワード置換を行うのに使用する、Windows コンソールアプリケーションです。ビルドプロセスの一部として、ビルドするものに作業コピーの情報を組み込むのにしばしば利用します。典型的なのは、「About」 ボックスにリビジョン番号を含めるのに使用することでしょう。
SubWCRev は作業コピーの全ファイルの Subversion 状態を読み込みます。デフォルトでは外部参照は除外します。検出した最も大きいコミットリビジョン番号と、そのタイムスタンプを記録します。また、作業コピーの手元の変更点か更新リビジョンが混ざっているのも記録します。リビジョン番号や更新リビジョン範囲、変更状態を標準出力に出力します。
コマンドラインやスクリプトから SubWCRev.exe を呼び出し、コマンドラインパラメータで制御します。
SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]
WorkingCopyPath はチェックする作業コピーのパスです。SubWCRev は作業コピーのみで使用でき、直接リポジトリを扱えません。作業コピーへのパスは、絶対パス、相対パスどちらでもかまいません。
リポジトリリビジョンや URL といったフィールドをテキストファイルに保存するため、SubWCRev がキーワード置換を行うようにしたい場合があります。その場合、テンプレートファイル SrcVersionFile や、テンプレートの置換バージョンを含む出力ファイル DstVersionFile を用意する必要があります。
SubWCRev の動作に影響を与えるオプションスイッチのいくつかを解説します。複数のオプションを使いたい場合、シングルグループで指定しなければなりません。例: -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' で始まる 16 進数で出力します。 |