CVS を使ってソースとドキュメントの最新版を追いかける

概要

CVS は 'Concurrent Versions System' の略で、ファイルのリビジョン を管理するシステムです。

CVS では、ネットワーク上に「リポジトリ」と呼ばれるものがあり、 リポジトリにすべてのファイルとその更新履歴が収められています。

FreeSC や SCDIS のソースコード、ドキュメント類はすべて CVS で 管理されており、リポジトリは sourceforge.net というオープンソースを支援するサイトで管理してもらっています。 これは公共のサービスなので、誰でもリポジトリにアクセスすることが できます(ただし読み込みのみ)。これを使えば、

といったことが可能になります。

CVS を使ってみる (Windows版)

 

ここでは、Windows 上で CVS を使って FreeSC や SCDIS のファイルを取ってくる 方法について説明します。UNIX 上での方法は後述します。

WinCVS をインストールする

Windows 版の場合は、まず CVS をインストールする必要があります。 CVS はコマンドラインから使うツールなのですが、Windows では GUI を使った WinCVS という使いやすいツールがありますので、 これを使うことにします。

WinCVS は http://www.wincvs.org/ でフリーソフトとして公開されていますので、まずはこれを取ってきて インストールしてください。

リポジトリの指定

インストールが終わったら WinCVS を起動してください。 最初に以下のようなダイアログが表示されると思います。 (このダイアログは Admin メニューの Preferences からも表示できます)

まず、このダイアログの General タブをクリックし、リポジトリの位置を 指定する必要があります。

'Enter the CVSROOT' のところには以下のように書いてください。これが リポジトリの指定です。

anonymous@cvs.freesc.sourceforge.net:/cvsroot/freesc
'Authentication' には認証の方法を書きます。これは '"passwd" file on the cvs server' を選びます。

ファイルをチェックアウトする

ではファイルを取り出してみましょう。これをチェックアウトといいます。 ウィンドウの左側で、ソースを取り出すフォルダを指定します。

ここでは、'C:\freesc' に取り出すことにしています。

次に、Create メニューから Checkout module を選びます。 どのフォルダにチェックアウトするか確認されるので、確認したら OK を押してください。

以下のダイアログが表示されます。

'Enter the module name and path on the server' のところに取り出したい モジュールの名前を入力します。ここには以下の値を入れてください。

ほかは特にいじらなくていいです。 OK を押すと、以下のようにファイルが取り出されます。 このときリポジトリにアクセスするので、インターネットに接続しておく必要が あります。

これで、C:\freesc の下にファイルがすべて取り出されているはずです。

ファイルをアップデートする

リポジトリに入っているファイルは日々(?)更新されていますので、 あなたが今取り出したファイルは日々古くなっていきます。 これを最新のものに追従する作業を「アップデート」といいます。 この作業は簡単に行うことができます。

先ほど取り出した freesc のソースコードをアップデートしてみましょう。 ウィンドウの左側で、アップデートしたいフォルダを選び右クリックします。 FreeSC のソースコードは fsc\src に入っています。

プルダウンメニューが表示されるので、'Update seletion'を押します。 すると指定したフォルダ(とサブフォルダ)内のファイルがすべてアップデート されます。

ファイルの変更履歴を見る

ファイルの変更履歴を見るのも簡単です。ウィンドウの右側に表示されている ファイルを選んで右クリックし、"Log selection"を選択すると、 画面下に変更履歴が表示されます。

これを見ると、value.cpp ファイルに 2000/2/5 18:23:23 に tmurakam(私) が変更を加えた(strlen 関数を追加した)ということがわかります。 Revision というのは、ファイルのリビジョン番号で、1.1 から順に 1.2, 1.3, ...という具合にあがっていきます。このファイルはリビジョンが 1.21 なので、過去に20回の変更があったことがわかります。

また、'Synbolic names' のところを見ると、 リビジョン 1.21 が beta2 のファイルであることもわかります。

差分を見る

このファイルがリビジョン 1.20 と 1.21 でどのような変更が加えられたのか 調べてみましょう。ファイルを右クリックし、'Diff selection' を選びます。

'Compare two revisions/tag/branches/dates' を選び、 Revision or date のところに 1.20 と 1.21 といれて OK を押します。 (なお、ここに 'beta1' 'beta2' と入れると、β1とβ2のファイルの差分をとる、といったことも可能です。)

すると以下のようにファイルの変更個所が表示されます。

UNIX で使う

UNIX で使う場合は、以下のようにします。

FreeBSD や Linux の場合は、最初から CVS がインストールされています。 もしなければどこかから取ってきてインストールしてください。

まず、環境変数 CVSROOT に以下の値をセットします。

:pserver:anonymous@cvs.freesc.sourceforge.net:/cvsroot/freesc
つぎに、CVS サーバにログインします。
cvs login
パスワードは空にしてください。

これで準備は完了です。 ファイルをチェックアウトするには以下のようにします。

cvs checkout fsc
これでカレントディレクトリにファイルが取り出されます。 アップデートを行うには、
cvs update
するだけです。他の使い方は man cvs をしてください。

ファイルをリポジトリにコミットする

ファイルをリポジトリに書き込むことを「コミット」といいます。 FreeSC/SCDIS では、コミットは特定の管理者しかできません(今のところは 私だけです。) 誰でもコミットできるようにしてあると、悪意を持った人間がファイルを めちゃくちゃにできるからです。

とりあえず共同開発をしてくれるかたは、変更した私にファイルをメールで送ってください。 私が内容を確認してコミットします。

なお、私が信用した方に関しては直接コミットを行う管理者権限をお渡しします。 必要な方は申請してください。 ただし、SSH(Secure Shell)をインストールしたりいろいろ手続きが面倒ですが。


村上 卓弥 - tmurakam@freesc.org