ノード: cvs2cl -- Generate GNU-Style ChangeLogs, 次: , 前: cvsutils -- General Utilities For Use With CVS, 上: Third-Party Tools



cvs2cl - Generate GNU-Style ChangeLogs

Depends on: Perl

URL: http://www.red-bean.com/~kfogel/cvs2cl.shtml

cvs2cl.pl は cvs log の出力を圧縮し、GNU スタイルのChangeLog 形式に 変換します。ChangeLog とは、人間が読みやすいようデザインされた形式で、 プロジェクトの変更履歴を時系列順に並べたドキュメントです(以下の例を 参照のこと)。

cvs log コマンドの問題は、ファイルごとの出力しかされなく て、別々のファイルに同じログメッセージがあることや、ほぼ同じ時刻であ ることとかがわからない、つまり、それらのリビジョンが一度にコミットさ れたということがわからない、という点です。なので、プロジェクトの概要 を知るためにログ出力を読むのは絶望的な作業です。実質、同時にひとつの ファイルの履歴しか見ることはできません。

cvs2cl.pl が生成した ChangeLog では各ログメッセージはひとつに統一さ れているので、一群のファイルを一度にコミットしたら、そのコミットは1 つのエントリとして示されます。例えば:

     floss$ cvs2cl.pl -r
     cvs log: Logging .
     cvs log: Logging a-subdir
     cvs log: Logging a-subdir/subsubdir
     cvs log: Logging b-subdir
     floss$ cat ChangeLog
     ...
     1999-08-29 05:44  jrandom
     
        * README (1.6), hello.c (2.1), a-subdir/whatever.c (2.1),
        a-subdir/subsubdir/fish.c (2.1): Committing from pcl-cvs 2.9, just
        for kicks.
     
     1999-08-23 22:48  jrandom
     
        * README (1.5): [no log message]
     
     1999-08-22 19:34  jrandom
     
        * README (1.4): trivial change
     ...
     floss$
     

最初のエントリは4つのファイルが "Committing from pcl-cvs 2.9, just for kicks." というログメッセージとともに一度にコミットされたことを示 しています。(-r はそのログメッセージに関連する各ファイルのリビジョン 番号を示すためのオプションです)

CVS と同様、cvs2cl.pl はカレントディレクトリを暗黙の引数として取りま すが、ファイル名を指定すればそれらについて動作します。以下に最もよく 使われるオプションのうちいくつかについて説明します。