元ファイルと先ファイルを与えると、SubWCRev は元ファイルから先ファイルへ、以下のようにキーワード置換を行いながらコピーします。
表6.3 利用可能なキーワードの一覧
キーワード | 説明 |
---|---|
$WCREV$ | 作業コピー内のもっとも新しいリビジョン番号に置き換わります。 |
$WCREV&$ | 作業コピー内のもっとも新しいリビジョン番号に、&の後の値でANDを取った値に置き換わります。たとえば、$WCREV&0xFFFF$ のように指定します。 |
$WCREV-$, $WCREV+$ | 作業コピー内のもっとも新しいリビジョン番号に、+や-の後の値で加えたり減じたりした値に置き換わります。たとえば、$WCREV-1000$ のように指定します。 |
$WCDATE$, $WCDATEUTC$ | 最後にコミットされたリビジョンのコミット日時の書式を変更します。デフォルトでは、国際的な書式である yyyy-mm-dd hh:mm:ss が使用されます。また、 strftime() というように独自の書式を指定することもできます。 たとえば、 $WCDATE=%a %b %d %I:%M:%S %p$ のようになります。使用することができる書式文字のリストについては、オンライン参照を参照してください。 |
$WCNOW$, $WCNOWUTC$ | 現在のシステム日時に置き換わります。ビルド時間を表示するにに使用できます。$WCDATE$ で説明したフォーマットが使われます。 |
$WCRANGE$ | 作業コピーの更新リビジョンの範囲に置き換わります。もし作業コピーが単一の状態ならば、単一のリビジョンになります。作業コピーに複数のリビジョン、例えば最新版と特定のリビジョンに更新したファイルが混在している場合、リビジョンの範囲は100:200のような形式になります。 |
$WCMIXED$ | $WCMIXED?TText:FText$ は、更新リビジョンが混ざっていれば TText に、そうでなければ FText に置き換わります。 |
$WCMODS$ | $WCMODS?TText:FText$ は、ローカルで変更があれば TText に、そうでなければ FText に置き換わります。 |
$WCUNVER$ | $WCUNVER?TText:FText$ は、作業コピーにバージョン管理外の項目がある場合は TText に、そうでなければ FText に置換されます。 |
$WCEXTALLFIXED$ | 全ての外部参照が特定のリビジョンに固定されている場合、 $WCEXTALLFIXED?TText:FText$ は TText で置き換えられ、そうでない場合は FText で置き換えられます。 |
$WCISTAGGED$ | もしリポジトリのURLがパターンを分類するタグを含んでいる場合は、 $WCISTAGGED?TText:FText$ が TText で置き換えられ、そうでない場合は FText で置き換えられます。 |
$WCURL$ | SubWCRev に渡した作業コピーのパスの URL に置き換わります。 |
$WCINSVN$ | $WCINSVN?TText:FText$ は、項目がバージョン管理下にあれば TText に、そうでなければ FText に置き換わります。 |
$WCNEEDSLOCK$ | $WCNEEDSLOCK?TText:FText$ は、エントリに svn:needs-lock プロパティが設定されていれば TText に、そうでなければ FText に置き換わります。 |
$WCISLOCKED$ | $WCISLOCKED?TText:FText$ は、項目がロック中の場合 TText に、そうでなければ FText に置き換わります。 |
$WCLOCKDATE$, $WCLOCKDATEUTC$ | ロック日時に置き換わります。日時のフォーマットは $WCDATE$ で説明した通りです。 |
$WCLOCKOWNER$ | ロック所有者の名前に置き換わります。 |
$WCLOCKCOMMENT$ | ロックについてのコメントに置き換わります。 |
$WCUNVER$ | $WCUNVER?TText:FText$ は、作業コピーにバージョン管理外のファイルやフォルダーがある場合はTText に、そうでなければFText に置換されます。 |
SubWCRev は式のネストを直接サポートしていません。たとえば、次のような式は使用することができません。
#define SVN_REVISION "$WCMIXED?$WCRANGE$:$WCREV$$"
しかし、次のように形式を変更すれば使用することができます。
#define SVN_RANGE $WCRANGE$ #define SVN_REV $WCREV$ #define SVN_REVISION "$WCMIXED?SVN_RANGE:SVN_REV$"
以上のキーワードのうちいくつかは、作業コピー全体というよりも、単一ファイルに適用されます。そのため、単一ファイルを走査するよう SubWCRev が呼ばれたときにのみ使用する意味があります。これは $WCINSVN$
, $WCNEEDSLOCK$
, $WCISLOCKED$
, $WCLOCKDATE$
, $WCLOCKOWNER$
and $WCLOCKCOMMENT$
に適用します。