tips/misc/CVS タグ間で更新されたファイルのリスト作成 のバックアップの現在との差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)

* CVS タグ間で更新されたファイルのリスト作成 [#n5707eca]

CVS を利用している場合に、大きな改訂(バージョンアップ)があった場合など、
どのファイルが更新されているか知りたい場合があります。~
ant の機能を利用すると、タグ間(あるいは日付間)のファイルの差異を
XML あるいは html 形式で出力することができます。


** 事前準備 [#sb9bdc09]

- ant をインストールしてください。
ちなみに Eclipse であれば、ant の機能(多分 jar)を内部に持っているので
ant 単体のインストールは不要です。
- コマンドラインで扱える cvs クライアントをインストールしてください。
Windows であれば、tortoiseCVS などもコマンドライン用 exe を持っているようです。
(cvs.exe。元は CVSNT という別のモジュール?)。
この exe のあるフォルダを環境変数 PATH に追加しておいてください。
- CVS のリポジトリへの接続が pserver の場合、下記コマンドで事前にログインしておいてください。
 % cvs -d :pserver:(ユーザー名)@(リポジトリ) login

 % cvs -d :pserver:(ユーザー名)@(リポジトリサーバ):(リポジトリルートパス) login


** 手順 [#p32d8505]

+ 下記のような内容で build.xml (ant のビルド情報を保持するファイル)を作成してください。
#pre{{
<?xml version="1.0" encoding="Windows-31J"?>

<project name="PROJECT_NAME" default="cvstagdiff" basedir=".">

  <target name="cvstagdiff">
    <cvstagdiff
        cvsRoot=":pserver:CVS_USER@CVS_ROOT"
        destfile="target/tagdiff.xml"
        package="PACKAGE_NAME"
        startTag="START_TAG"
        endTag="END_TAG"
    />
    <xslt in="target/tagdiff.xml" 
           out="target/tagdiff.html" 
           style="./tagdiff.xsl">
      <param name="title" expression="CVS Tag Diff"/>
      <param name="module" expression="."/>
      <param name="cvsweb" expression="../"/>
    </xslt>
  </target>

</project>
}}
:: PROJECT_NAME | プロジェクト名
:: CVS_USER | CVS のユーザー
:: CVS_ROOT | CVS リポジトリ
:: PACKAGE_NAME | CVS 上のパッケージ名
:: START_TAG | 比較したいタグ(古い方)
:: END_TAG | 比較したいタグ(新しい方)
+ 結果ファイルの整形に必要な tagdiff.xsl ファイルを、
build.xml と同じディレクトリに保存してください。~
tagdiff.xsl ファイルは、ant をインストールしていれば ant の etc ディレクトリにサンプルがあります。~
(tagdiff.xsl をコピーする代わりに、ant 内のオリジナルファイルをそのまま用いてもかまいません。
その場合、build.xml 内の '''style="./tagdiff.xsl"''' を
オリジナルファイルのパスに書き換えてください)
+ ターゲット cvstagdiff を指定して ant を実行してください。

-- コマンドラインから実行する場合は
 % ant cvstagdiff

-- Eclipse から実行する場合は~
build.xml を選択し、右クリック ->「実行」->「ant ビルド...」-> ターゲット cvstagdiff を選択

上記を実行すると、target ディレクトリの下に tagdiff.xml, tagdiff.html というファイル名で
差分のリストが出力されます。