minimize

事業拡大のため、新しい仲間を募集しています。
→詳しくはこちら

バージョン管理システムCVSのログ出力を使ってみます。
今回は全てコマンドライン上から行います。

まず最初に

WinCVSやEclipseなどの総合環境からでないと
CVSを使ったことが無いという人もいると思いますので、
まずはコマンドラインからの使い方を説明します。

CVSをインストールする

Unix環境では大抵CVSがシステムにインストールされていると思いますが
Windowsでは自分でインストールする必要があります。
WinCVS が最も一般的でかつ便利なので、まずはこれを入れましょう。
もちろん、Cygwinを使っている人はUnix版をインストールしても構いません。

ログを出力する

では早速、CVSのログを出力してみましょう。
今回は、既にCVSリポジトリで管理しているプロジェクトを対象とします。

コマンドライン上から、
プロジェクトのルートディレクトリ(もしくはそのサブディレクトリ)に移動します。
そして以下のコマンドを入力します。

$ cvs log

前半の cvs はプログラム名、後半の log はコマンドラインオプションです。

画面にズラズラっとログが出力されたでしょうか。
「認証が必要です」などのエラーが出た場合は、

$ cvs login

を実行してCVSパスワードを打ち込みます。
パスワードは1度打ち込めばその後の入力は不要です。

対象ファイルを制限する

CVSを使う上では基準ディレクトリが重要です。
通常は、CVSコマンドを実行したときのカレントディレクトリが
基準ディレクトリになります。

ほとんどのCVSコマンドは、基準ディレクトリ以下の「全ての」ファイルを
コマンドの対象とします。サブディレクトリは再帰的に検索されます。

ですから、対象ファイルを制限したい場合は
カレントディレクトリを変えてcvsコマンドを実行すれば
そのディレクトリ以下のファイルのみを対象とすることが出来ます。

日付を指定する

特定の日付に格納(コミット)されたファイルのみを表示するには -d オプションを指定します。

$ cvs log -d ">2004-06-06"
$ cvs log -d "2004-07-07>2004-06-06"

前者は指定日付以降に格納されたファイルを、
後者は指定日付の間に格納されたファイルをそれぞれ出力します。

ヘッダ出力を制限する

ログ出力形式は、ファイル毎に「ヘッダ + リビジョン情報」という形になっています。
従って、例えば日付を制限して出力した場合に
リビジョン情報の無いファイルもヘッダ情報だけは出力されてしまいます。
これを出力しないようにするには、 -S オプションを使います。

$ cvs log -d ">2004-06-06" -S

これで、指定日付以降に格納されたファイルだけの情報を出力することが出来ます。

余談ですが、日本語化されたCVSのマニュアルの一部には
このオプションの事が記載されていません。
比較的新しいオプションなのかもしれませんが、非常に便利なので
是非覚えておきましょう。

ファイルパス名だけを出力する

ログ出力には、リビジョン番号や枝情報など様々な情報が出力されます。
こういった情報が必要になる事はあまり無く、
単にファイル名一覧が欲しい事の方が多いはずです。
それには -R オプションを使用します。

$ cvs log -d ">2004-06-06" -S -R

これで、指定日付以降に格納されたファイルの一覧を得ることが出来ます。