Keyword Substitution

If a source and destination files are supplied, SubWCRev copies source to destination, performing keyword substitution as follows:

Table 5.3. List of available keywords

KeywordDescription
$WCREV$ Replaced with the highest commit revision in the working copy.
$WCREV&$ Replaced with the highest commit revision in the working copy, ANDed with the value after the & char. For example: $WCREV&0xFFFF$
$WCREV-$, $WCREV+$ Replaced with the highest commit revision in the working copy, with the value after the + or - char added or subtracted. For example: $WCREV-1000$
$WCDATE$, $WCDATEUTC$ Replaced with the commit date/time of the highest commit revision. By default, international format is used: yyyy-mm-dd hh:mm:ss. Alternatively, you can specify a custom format which will be used with strftime(), for example: $WCDATE=%a %b %d %I:%M:%S %p$. For a list of available formatting characters, look at the online reference .
$WCNOW$, $WCNOWUTC$ Replaced with the current system date/time. This can be used to indicate the build time. Time formatting can be used as described for $WCDATE$.
$WCRANGE$ Replaced with the update revision range in the working copy. If the working copy is in a consistent state, this will be a single revision. If the working copy contains mixed revisions, either due to being out of date, or due to a deliberate update-to-revision, then the range will be shown in the form 100:200.
$WCMIXED$ $WCMIXED?TText:FText$ is replaced with TText if there are mixed update revisions, or FText if not.
$WCMODS$ $WCMODS?TText:FText$ is replaced with TText if there are local modifications, or FText if not.
$WCUNVER$ $WCUNVER?TText:FText$ is replaced with TText if there are unversioned items in the working copy, or FText if not.
$WCEXTALLFIXED$ $WCEXTALLFIXED?TText:FText$ is replaced with TText if all externals are fixed to an explicit revision, or FText if not.
$WCISTAGGED$ $WCISTAGGED?TText:FText$ is replaced with TText if the repository URL contains the tags classification pattern, or FText if not.
$WCURL$ Replaced with the repository URL of the working copy path passed to SubWCRev.
$WCINSVN$ $WCINSVN?TText:FText$ is replaced with TText if the entry is versioned, or FText if not.
$WCNEEDSLOCK$ $WCNEEDSLOCK?TText:FText$ is replaced with TText if the entry has the svn:needs-lock property set, or FText if not.
$WCISLOCKED$ $WCISLOCKED?TText:FText$ is replaced with TText if the entry is locked, or FText if not.
$WCLOCKDATE$, $WCLOCKDATEUTC$ Replaced with the lock date. Time formatting can be used as described for $WCDATE$.
$WCLOCKOWNER$ Replaced with the name of the lock owner.
$WCLOCKCOMMENT$ Replaced with the comment of the lock.


SubWCRev does not directly support nesting of expressions, so for example you cannot use an expression like:

#define SVN_REVISION    "$WCMIXED?$WCRANGE$:$WCREV$$"

But you can usually work around it by other means, for example:

#define SVN_RANGE       $WCRANGE$
#define SVN_REV         $WCREV$
#define SVN_REVISION    "$WCMIXED?SVN_RANGE:SVN_REV$"

Tip

Some of these keywords apply to single files rather than to an entire working copy, so it only makes sense to use these when SubWCRev is called to scan a single file. This applies to $WCINSVN$, $WCNEEDSLOCK$, $WCISLOCKED$, $WCLOCKDATE$, $WCLOCKOWNER$ and $WCLOCKCOMMENT$.