ノード: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 はカレントディレクトリを暗黙の引数として取りま すが、ファイル名を指定すればそれらについて動作します。以下に最もよく 使われるオプションのうちいくつかについて説明します。