6.2. Keyword Substitution

TortoiseSVN

6.2. Keyword Substitution

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

Table 6.3. List of available keywords

Keyword Description
$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.
$WCUNVER$ $WCUNVER?TText:FText$ is replaced with TText if there are unversioned files or folders in the working copy, or FText if not.

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] 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$.