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



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

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

事前準備

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

手順

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

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

  <target name="cvstagdiff">
    <cvstagdiff
        cvsRoot=":pserver:CVS_USER@axisrepo:/opt/cvsroot"
        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>

<<各項目の説明>>

  1. 結果ファイルの整形に必要な tagdiff.xsl ファイルを、 build.xml と同じディレクトリに保存してください。
    tagdiff.xsl ファイルは、ant をインストールしていれば ant の etc ディレクトリにサンプルがあります。
    (tagdiff.xsl をコピーする代わりに、ant 内のオリジナルファイルを用いてもかまいません。 その場合、build.xml 内の style="./tagdiff.xsl" を オリジナルファイルのパスに書き換えてください)
  1. ターゲット cvstagdiff を指定して ant を実行してください。
  • コマンドラインから実行する場合は
    % ant cvstagdiff
  • Eclipse から実行する場合は
    build.xml を選択し、右クリック ->「実行」->「ant ビルド...」-> ターゲット cvstagdiff を選択

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