CVS は 'Concurrent Versions System' の略で、ファイルのリビジョン を管理するシステムです。
CVS では、ネットワーク上に「リポジトリ」と呼ばれるものがあり、 リポジトリにすべてのファイルとその更新履歴が収められています。
FreeSC や SCDIS のソースコード、ドキュメント類はすべて CVS で 管理されており、リポジトリは sourceforge.net というオープンソースを支援するサイトで管理してもらっています。 これは公共のサービスなので、誰でもリポジトリにアクセスすることが できます(ただし読み込みのみ)。これを使えば、
ここでは、Windows 上で CVS を使って FreeSC や SCDIS のファイルを取ってくる 方法について説明します。UNIX 上での方法は後述します。
WinCVS は http://www.wincvs.org/ でフリーソフトとして公開されていますので、まずはこれを取ってきて インストールしてください。
まず、このダイアログの 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' のところに取り出したい モジュールの名前を入力します。ここには以下の値を入れてください。
これで、C:\freesc の下にファイルがすべて取り出されているはずです。
先ほど取り出した freesc のソースコードをアップデートしてみましょう。 ウィンドウの左側で、アップデートしたいフォルダを選び右クリックします。 FreeSC のソースコードは fsc\src に入っています。
プルダウンメニューが表示されるので、'Update seletion'を押します。 すると指定したフォルダ(とサブフォルダ)内のファイルがすべてアップデート されます。
これを見ると、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 のファイルであることもわかります。
'Compare two revisions/tag/branches/dates' を選び、 Revision or date のところに 1.20 と 1.21 といれて OK を押します。 (なお、ここに 'beta1' 'beta2' と入れると、β1とβ2のファイルの差分をとる、といったことも可能です。)
すると以下のようにファイルの変更個所が表示されます。
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)をインストールしたりいろいろ手続きが面倒ですが。