處理從 CVS 儲存庫檢索的套件/模組。
重要:此任務需要路徑上的 cvs 二進位檔。如果沒有,您將收到錯誤訊息(例如 Windows 上的 error=2
)。如果 <cvs>
無法運作,請嘗試在您正在工作的目標目錄中從命令列執行 cvs.exe。另請注意,此任務假設 cvs 可執行檔與 Unix 版本相容,對於某些其他 CVS 用戶端(例如 CVSNT)並非完全正確,且在使用此類不相容用戶端時,某些作業可能會失敗。
CVSNT 備註:CVSNT 偏好使用者將密碼儲存在登錄檔中。如果 cvspass 任務 和 passfile 屬性對您不起作用,最可能的原因是 CVSNT 完全忽略您的 .cvspass 檔案。請參閱 Bugzilla 報告 21657 以取得建議的解決方法。
屬性 | 說明 | 必要 |
---|---|---|
command | 要執行的 CVS 指令。 | 否;預設為 checkout |
compression | true(等於 compressionlevel= 3)或 false |
否;預設為 false |
compressionlevel | 介於 1和 9之間的數字(對應於 CVS -z# 參數的可能值)。任何其他值都視為 compression= false |
否;預設為不壓縮 |
cvsRoot | CVSROOT 變數。 |
否 |
cvsRsh | CVS_RSH 變數。 |
否 |
dest | 檢出的檔案應放置的目錄。請注意,這與 CVS 的 -d 命令列開關不同,因為 Apache Ant 永遠不會縮短路徑名稱以避免空目錄。 | 否;預設為專案的 basedir |
package | 要檢出的套件/模組。注意:可以使用空白分隔多個屬性。如果您要指定名稱中含有空白的模組,請使用巢狀的 <module> 元素。 |
否 |
tag | 要檢出的套件/模組的標籤。 | 否 |
date | 使用最晚在指定日期之前的最新版本 | 否 |
quiet | 抑制資訊訊息。這與命令列上的 -q 相同。 | 否;預設為 false |
reallyquiet | 抑制所有訊息。這與命令列上的 -Q 相同。自 Ant 1.6 起。 | 否;預設為 false |
noexec | 僅報告,不變更任何檔案。 | 否;預設為 false |
output | 將命令的標準輸出導向至檔案。 | 否;預設是作為 MSG_INFO 輸出至記錄檔 |
error | 將命令的標準錯誤導向至檔案。 | 否;預設是作為 MSG_WARN 錯誤至記錄檔 |
append | 將輸出/錯誤附加至檔案時是否附加。 | 否;預設為 false |
port | CVS 用於與伺服器通訊的埠。 | 否;預設為 2401 |
passfile | 用於讀取密碼的密碼檔案。 | 否;預設為 ~/.cvspass |
failonerror | 如果命令以 0以外的回傳碼結束,則停止建置程序。 |
否;預設為 false |
指定要處理的套件/模組,與 package 屬性不同,使用此屬性指定的模組名稱中可以包含空格。
屬性 | 說明 | 必要 |
---|---|---|
name | 模組/套件的名稱。 | 是 |
從 cvsRoot 屬性指向的 CVS 儲存庫中檢出套件/模組 ant,並將檔案儲存在 ${ws.dir} 中。
<cvs cvsRoot=":pserver:anoncvs@cvs.apache.org:/home/cvspublic" package="ant" dest="${ws.dir}"/>
更新先前已檢出至 ${ws.dir} 的套件/模組。
<cvs dest="${ws.dir}" command="update"/>
靜默 (-q) 建立一個名為 patch.txt 的檔案,其中包含統一 (-u) diff,包括透過 cvs add (-N) 新增的新檔案,且可用作 patch 的輸入。
<cvs command="-q diff -u -N" output="patch.txt"/>
使用 <commandline>
元素的等效方式為
<cvs output="patch"> <commandline> <argument value="-q"/> <argument value="diff"/> <argument value="-u"/> <argument value="-N"/> </commandline> </cvs>
或
<cvs output="patch"> <commandline> <argument line="-q diff -u -N"/> </commandline> </cvs>
您可以包含任意數量的 <commandline>
元素。每個元素都會繼承 <cvs>
元素的 failonerror、compression 和其他「全域」參數。
從儲存庫的頭端更新,忽略黏著位元 (-A),並視需要建立任何新目錄 (-d)。
<cvs command="update -A -d"/>
注意:指令的文字會「原樣」傳遞給 cvs,因此任何 cvs 選項都應該出現在指令之前,而任何指令選項都應該出現在指令之後,如上方的 diff
範例所示。請參閱 CVS 書籍 以取得詳細資料,特別是 CVS 指令指南。