CvsChangeLog

說明

產生 CVS 儲存庫中記錄的變更記錄的 XML 格式報告檔案。

重要:此工作需要路徑上的 cvs。如果不是,您將會收到錯誤(例如 Windows 上的 error=2)。如果 <cvs> 無法運作,請嘗試在您正在工作的目標目錄中從命令列執行 cvs.exe。另請注意,此工作假設 cvs 可執行檔與 Unix 版本相容,這對於某些其他 CVS 客戶端(例如 CVSNT)並非完全正確,而且使用此類不相容客戶端時,某些操作可能會失敗。

參數

屬性 說明 必要
此處有意義的父項 <cvs> 工作的屬性
自 Apache Ant 1.6.1 起
cvsRoot CVSROOT 變數。
cvsRsh CVS_RSH 變數。
package 要簽出的套件/模組。注意:可以使用空白鍵拆分多個屬性。如果您要指定名稱中有空白鍵的模組,請使用巢狀 <module> 元素。
port CVS 用於與伺服器通訊的埠。 否;預設為 2401
passfile 讀取密碼的密碼檔案。 否;預設為 ~/.cvspass
failonerror 如果命令退出時傳回的代碼不是 0,則停止建置程序 否;預設為 false
tag 查詢特定分支的變更記錄。
特定屬性
dir 執行 cvs log 命令的目錄。 否;預設為 ${basedir}
destfile 要將變更記錄報告寫入的檔案。
usersfile 包含名稱/值配對的屬性檔案,用於將使用者 ID 和名稱對應到報告中應使用的使用者 ID。
daysinpast 設定應擷取變更記錄資訊的過去天數。
start 變更記錄將包含在報告中的最早日期。
end 變更記錄將包含在報告中的最新日期。
remote 如果設定為 true,則會在沒有工作副本的情況下針對儲存庫(使用 cvs rlog)運作。自 Ant 1.8.0 起 否;預設為 false
startTag 標籤範圍的開始。如果 endTag 也已指定,它們必須都在同一個分支上。如果未指定 endTag,範圍的結尾將會是 startTag 所在分支上的最新版本。自 Ant 1.8.0 起
endTag 標籤範圍的結尾。如果 startTag 也已指定,它們必須都在同一個分支上。如果未指定 startTag,範圍的開始將會是 endTag 所在分支的頂端。自 Ant 1.8.0 起

指定為巢狀元素的參數

user

巢狀的 <user> 元素讓您可以指定使用者 ID(如其在 CVS 伺服器上顯示)與格式化報告中要包含的名稱之間的對應。任何時候指定使用者 ID 已在儲存庫中進行變更,報告檔案中的 <author> 標籤會包含 displayname 中指定的姓名,而非使用者 ID。

屬性 說明 必要
displayname 要使用在 CVS 變更日誌報告中的名稱。
userid 使用者的 ID,如其在 CVS 伺服器上存在的狀態。

module

指定要使用的套件/模組,與套件屬性不同,使用此屬性指定的模組名稱中可以包含空白。

屬性 說明 必要
name 模組/套件的名稱。

範例

針對在 dve/network 目錄下進行的所有變更產生變更日誌報告。將這些變更寫入 changelog.xml 檔案中。

<cvschangelog dir="dve/network"
              destfile="changelog.xml"/>

針對在過去 10 天內在 dve/network 目錄下進行的任何變更產生變更日誌報告。將這些變更寫入 changelog.xml 檔案中。

<cvschangelog dir="dve/network"
              destfile="changelog.xml"
              daysinpast="10"/>

針對在 2002 年 2 月 20 日至 2002 年 3 月 20 日之間在 dve/network 目錄下進行的任何變更產生變更日誌報告。將這些變更寫入 changelog.xml 檔案中。

<cvschangelog dir="dve/network"
              destfile="changelog.xml"
              start="20 Feb 2002"
              end="20 Mar 2002"/>

針對在 2002 年 2 月 20 日之後在 dve/network 目錄下進行的任何變更產生變更日誌報告。將這些變更寫入 changelog.xml 檔案中。

<cvschangelog dir="dve/network"
              destfile="changelog.xml"
              start="20 Feb 2002"/>

針對在 dve/network 目錄下進行的所有變更產生變更日誌報告,在任何時候遇到使用者 ID donaldp 所做的變更時,都將 <author> 標籤中的名稱替換為 Peter Donald。將這些變更寫入 changelog.xml 檔案中。

<cvschangelog dir="dve/network"
              destfile="changelog.xml">
    <user displayname="Peter Donald" userid="donaldp"/>
</cvschangelog>

ANT_16_BRANCH 上產生變更日誌報告。

<cvschangelog dir="c:/dev/asf/ant.head" passfile="c:/home/myself/.cvspass"
              destfile="changelogant.xml" tag="ANT_16_BRANCH"/>

產生報告

Ant 包含一個基本的 XSLT 樣式表,你可以使用它來根據 XML 輸出產生 HTML 報告。以下範例說明如何從 XML 報告產生 HTML 報告。

<style in="changelog.xml"
      out="changelog.html"
      style="${ant.home}/etc/changelog.xsl">
  <param name="title" expression="Ant ChangeLog"/>
  <param name="module" expression="ant"/>
  <param name="cvsweb" expression="https://cvs.apache.org/viewcvs/"/>
</style>

範例輸出

<changelog>
  <entry>
    <date>2002-03-06</date>
    <time>12:00</time>
    <author>Peter Donald</author>
    <file>
      <name>org/apache/myrmidon/build/AntlibDescriptorTask.java</name>
      <revision>1.3</revision>
      <prevrevision>1.2</prevrevision>
    </file>
    <msg><![CDATA[Use URLs directly rather than go via a File.

This allows templates to be stored inside jar]]></msg>
  </entry>
</changelog>