Jeśli pliki źródłowy i docelowy są dostarczane, SubWCRev kopiuje źródło do celu, wykonując substytucji słów kluczowych w następujący sposób:
Tabela 6.3. Lista dostępnych słów kluczowych
| Słowo kluczowe | Opis |
|---|---|
| $WCREV$ | Zastępowane przez najwyższą wersję zatwierdzenia w kopii roboczej. |
| $WCREV&$ | Zastąpiona przez najwyższą wersję zatwierdzenia w kopii roboczej, połączona koniunkcją logiczną AND z wartością po znaku &. Na przykład: $WCREV&0xFFFF$ |
| $WCREV-$, $WCREV+$ | Zastąpiona przez najwyższą wersję zatwierdzenia w kopii roboczej, z wartością po + lub - odpowiednio dodaną lub odjętą. Na przykład: $WCREV-1000$
|
| $WCDATE$, $WCDATEUTC$ | Zastępowane przez datę/czas wykonania najwyższej wersji zatwierdzenia. Domyślnie używany jest format międzynarodowy: yyyy-mm-dd hh:mm:ss. Alternatywnie, można określić niestandardowy format, który będzie używany z strftime(), na przykład: $WCDATE=%a %b %d %I:%M:%S %p$. Aby uzyskać listę dostępnych znaków formatowania, spójrz na odnośnik internetowy. |
| $WCNOW$, $WCNOWUTC$ | Zastępowane przez datę/czas systemowy. Może zostać wykorzystane do wskazywania czasu kompilacji. Można zastosować formatowanie jak opisano dla $WCDATE$. |
| $WCRANGE$ | Zastępowane przez zakres wersji aktualizacji z kopii roboczej. Jeśli kopia robocza jest w stanie spójnym, będzie to jedna wersja. Jeśli kopia robocza zawiera różne zmiany, albo ze względu na nieaktualność, albo z powodu celowej aktualizacji do wersji, to zakres zostanie pokazany w formacie 100:200. |
| $WCMIXED$ | $WCMIXED?TText:FText$ otrzymuje wartość TText jeśli występują mieszane wersje aktualizacji albo FText, jeśli nie. |
| $WCMODS$ | $WCMODS?TText:FText$ otrzymuje wartość TText jeśli występują lokalne modyfikacje albo FText, jeśli nie. |
| $WCUNVER$ | $WCUNVER?TText:FText$ jest zastąpione przez TText jeśli w kopii roboczej znajdują się niewersjonowane obiekty, lub FText jeśli nie. |
| $WCEXTALLFIXED$ | $WCEXTALLFIXED?TText:FText$ jest zastępowane przez TText jeśli wszystkie zewnętrzne są osadzone w określonej wersji lub przez FText w przeciwnym przypadku. |
| $WCISTAGGED$ | $WCISTAGGED?TText:FText$ jest zastępowane przez TText jeśli adres URL repozytorium zawiera znaczniki wzorca klasyfikacji lub przez FText w przeciwnym przypadku. |
| $WCURL$ | Zastąpione przez URL repozytorium dla ścieżki kopii roboczej przekazanej do SubWCRev. |
| $WCINSVN$ | $WCINSVN?TText:FText$ otrzymuje wartość TText jeśli wejście jest wersjonowane albo FText, jeśli nie. |
| $WCNEEDSLOCK$ | $WCNEEDSLOCK?TText:FText$ otrzymuje wartość TText jeśli wejście ma ustawiony atrybut svn:needs-lock albo svn:needs-lock, jeśli nie. |
| $WCISLOCKED$ | $WCISLOCKED?TText:FText$ otrzymuje wartość TText jeśli wejście jest zablokowane albo FText, jeśli nie. |
| $WCLOCKDATE$, $WCLOCKDATEUTC$ | Zastępowane datą blokady. Formatowanie może być dostosowane jak opisano dla $WCDATE$. |
| $WCLOCKOWNER$ | Zastępowane przez nazwę właściciela blokady. |
| $WCLOCKCOMMENT$ | Zastępowane komentarzem blokady. |
| $WCUNVER$ | $WCUNVER?TText:FText$ został zastąpiony przez TText jeśli w kopii roboczej znajdują się niewersjonowane pliki lub foldery, lub FText jeśli nie. |
SubWCRev nie obsługuje bezpośrednio zagnieżdżania wyrażeń, więc nie można na przykład używać wyrażeń takich jak:
#define SVN_REVISION "$WCMIXED?$WCRANGE$:$WCREV$$"
Ale zazwyczaj można to obejść w inny sposób, na przykład:
#define SVN_RANGE $WCRANGE$ #define SVN_REV $WCREV$ #define SVN_REVISION "$WCMIXED?SVN_RANGE:SVN_REV$"
Niektóre z tych słów kluczowych stosuje się do pojedynczych plików, a nie do całej kopii roboczej, więc ma to sens tylko do korzystania z tych, kiedy SubWCRev jest wywołany do skanowania pojedynczego pliku. Dotyczy to $WCINSVN$, $WCNEEDSLOCK$, $WCISLOCKED$, $WCLOCKDATE$, $WCLOCKOWNER$ i $WCLOCKCOMMENT$.