Cvs

說明

處理從 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 介於 19 之間的數字(對應於 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

指定為巢狀元素的參數

module

指定要處理的套件/模組,與 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> 元素的 failonerrorcompression 和其他「全域」參數。

從儲存庫的頭端更新,忽略黏著位元 (-A),並視需要建立任何新目錄 (-d)。

<cvs command="update -A -d"/>

注意:指令的文字會「原樣」傳遞給 cvs,因此任何 cvs 選項都應該出現在指令之前,而任何指令選項都應該出現在指令之後,如上方的 diff 範例所示。請參閱 CVS 書籍 以取得詳細資料,特別是 CVS 指令指南