如果已提供來源與目的檔,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$ |
$WCISTAGGED?TText:FText$ 會在儲存庫 URL 包含 tag 分類模式時換成 TText ,沒有時則換成 FText 。 |
$WCURL$ | 換成傳遞至 SubWCRev 的工作副本路徑的儲存庫 URL。 |
$REPOROOT$ | 換成儲存庫根目錄的 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$
和 $WCLOCKCOMMENT$
。