FreeBSD QandA 649

FreeBSD QandA

Q. CVS と CVSup はどう違いますか?
   また Anonymous CVS や CVSweb とはどう違いますか?

A. それぞれ全然性格が違います。長いので最後にまとめをつけてあります。

      1. CVS

      CVS (Concurrent Versions System) はソースコードのバージョン管理ツールです。
      RCS や SCCS の仲間と思ったらいいでしょう。CVS リポジトリ (repository) と
      いうところに一括してバージョン管理ファイルを置いておくことで、複数の開発
      者によるプログラムの開発作業を円滑に進めることができます。CVS リポジトリ
      はリモートホスト上にあっても構いません (remote cvs と呼ぶことがあります)。

      開発者は自分の手元で行なったソースコードへの変更を、cvs(1) コマンドを使っ
      て CVS リポジトリに反映させたり、あるいは CVS リポジトリから任意のバージョ
      ンのファイルを取り出したりすることができます。

      CVS リポジトリの操作をするには、
        - CVS リポジトリの置かれたマシンにアカウントがあること
        - CVS リポジトリに対してアクセス権があること
      が必要です。例えば、FreeBSD の開発では、開発者 (core team や committer)
      は freefall.FreeBSD.org というマシンにアカウントを持っていて、そこにある
      FreeBSD のマスタ CVS リポジトリを操作して開発を行っています。当然権限の
      無い人はリポジトリをいじることはできません。

      CVS そのものに関して:
          <URL:[BROKEN!] http://www.cvshome.org/>
      書籍では、
          Karl Fogel: Open Source Development with CVS
          竹内里佳訳、でびあんぐる監訳: CVS -バージョン管理システム-
          オーム社開発局, ISBN4-274-06372-0
          <URL:http://kahori.com/j-cvsbook/>
          <URL:http://cvsbook.red-bean.com/>
      また、info cvs に詳しい説明があります。

      2. Anonymous CVS

      Anonymous CVS とは、FTP の場合でいう Anonymous FTP に似ています。通常の
      CVS では「匿名ユーザによるファイルの取り出しだけしたい」という要求を
      満たせません。そこで、リポジトリの読み取りのみ誰にでも許可したサービス
      が Anonymous CVS となります。

      FreeBSD の Anonymous CVS について:
        <URL:http://www.jp.FreeBSD.ORG/www.freebsd.org/doc/ja_JP.eucJP/books/handbook/anoncvs.html#ANONCVS>

      3. CVSup

      CVSup は汎用のファイル配布ツールで、特に CVS リポジトリを取り扱うのに向い
      ています。CVSup によるファイル転送では変更された差分情報のみを送りますの
      で、Anonymous CVS に比べ遥かに効率的で短時間に処理することができます。ま
      た、リポジトリそのものをミラーするには CVSup が適しています。

      CVSup を利用するには cvsup(1) と呼ばれる専用のプログラムが必要で、サーバ
      で動いている cvsupd(8) というサーバプログラムと通信します。FreeBSD では
      どちらも ports/packages に収録されています。

      FreeBSD の CVSup について:
        <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/cvsup.html>

     4. CVSweb

      CVS リポジトリを閲覧するための Web インタフェースです。個々のファイルの
      コミットログを参照したり、リビジョン間の差分を確認するのに向いています。

      FreeBSD CVS Repository:
        <URL:http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/>

      5. まとめ

      以下○×表にしました。

      CVS   anoncvs  CVSup   CVSweb
      ---     ---     ---     ---
      ×      ○      ○      ○      匿名ユーザによるリポジトリの参照
      ○      ×      ×      ×      リポジトリの変更
      ×      ×      ○      ×      リポジトリのミラー
      ○      ○      ○      ×      複数ファイルの処理 (ディレクトリ単位)
      ○      ○      ×      ○      コミットログや差分の表示
      ○      ○      △      ○      プログラムは FreeBSD 以外でも動く
      ○      ○      ×      ×      プログラムは FreeBSD に付属
      ×      ×      ○      ×      処理効率

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。