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