A.4. Anonymous CVS

訳: 杉村 貴士 、1998 年 7 月 19 日

A.4.1. 導入

Anonymous CVS (もしくは、anoncvs として知られています) は離れたところにある CVS リポジトリと同期を取るために FreeBSD に付属している CVS ユーティリティに含まれている機能です。他にもありますが、 それは FreeBSD のユーザが、特別な権限なしに FreeBSD プロジェクトの公式な anoncvs サーバに読み取り専用で CVS の操作をすることができるようにするためのものです。 それを使うには、単に CVSROOT 環境変数を設定して適切な anoncvs サーバを指定し、 cvs login を使って パスワード “anoncvs” を入力してください。 そして次に cvs(1) コマンドを使うことで、 手元にあるリポジトリと同じようにアクセスできるようになります。

Note: cvs login コマンドは、CVS サーバの認証に使われるパスワードを HOME ディレクトリの .cvspass というファイルに保存します。 このファイルが存在しなければ、最初に cvs login を使おうとしたときにエラーが出るでしょう。空の .cvspass ファイルを作成して再度ログインに挑戦してください。

CVSupanoncvs のサービスは本質的に同じ機能ではないかということも言われていますが、 ユーザが同期を取る方法を選ぶときに影響を与える、 さまざまなトレードオフが存在します。要約して言えば、 CVSup はネットワーク資源の使い方においては非常に効率が良く技術的にもはるかに洗練されたものですが、 相当な手間がかかります。CVSup を使うには特別なクライアントをまずインストールして設定しなくては 1 bit も取ってくることができませんし、さらにそのとき CVSup で取ってくることができるのは、 コレクション (collection) と呼ばれる、 かなり大きなかたまりだけです。

それに対して anoncvs では、 CVS モジュールの名前を指定することで特定のプログラムの (lsgrep のような) 個々のファイルから調べることができます。もちろん、 anoncvs は CVS リポジトリの読み取り専用の操作に対してのみ適しているので、 もしあなたが FreeBSD プロジェクトのものと共有されたなにか ローカルなリポジトリを作ってそこでの開発を 行おうというときには、CVSup だけが唯一の手段となってしまいます。

A.4.2. Anonymous CVS を使う

cvs(1) を設定して Anonymous CVS リポジトリを使うには単に CVSROOT 環境変数を設定して FreeBSD プロジェクトの anoncvs サーバを指定するだけのことです。 この文書を書いているときには、 次のサーバが利用できるようになっています。

CVS はかつて存在した (もしくはこれから存在するものも) ほとんどどんなバージョンの FreeBSD のソースを “check out” することができますが、あなたは cvs(1) の リビジョン (-r) のオプションや FreeBSD プロジェクトのリポジトリの中で それをどのように指定したらいいものかということを よく知っておく必要があります。

タグには 2 種類あって、 リビジョンタグとブランチタグがあります。 リビジョンタグは特定の改訂版を指しており、 それはいつも同じものを意味しています。一方ブランチタグは、 指定されたときの指定された開発の流れにおける 最も新しい改訂版を示しています。 ブランチタグは特定の改訂版を指していないために、 その意味はきょうと明日では違うものになっているでしょう。

Section A.7 にはユーザが興味を持つであろうリビジョンタグの一覧が載せられています。 これらはいずれも Ports Collection に対して使うことはできません。 Ports Collection は複数の開発ブランチを持っていないからです。

ブランチタグを指定したときには、 普通はその開発の流れにおける 最も新しいバージョンのファイルを受け取ることができます。 もし以前のバージョンのものが欲しいときには、日付を -D date オプションを使って指定すればよいです。 これ以上のことは cvs(1) man page を見てください。

A.4.3. 例

本当はなにかする前には cvs(1) のマニュアルページの全体をちゃんと読んでからのほうがいいのですが、 Anonymous CVS の使い方の本質的なところを簡単に例を挙げて説明します。

Example A-1. -CURRENT (ls(1)) をちょっと確認してみます。

% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
プロンプトが表示されたら、“password” に任意の単語を入力します。
% cvs co ls
   

Example A-2. SSH を使って src/ ツリーをチェックアウトしてみます。

% cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.

Example A-3. ls(1) のバージョンを 6-STABLE ブランチから調べてみます。

% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
プロンプトが表示されたら、“password” に任意の単語を入力します。
% cvs co -rRELENG_6 ls
   

Example A-4. ls(1) の変更点のリストを (Unified diff で) 作ってみます。

% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
プロンプトが表示されたら、“password” に任意の単語を入力します。
% cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls
   

Example A-5. 他のどんなモジュールの名前が 使われているか検索してみます。

% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
プロンプトが表示されたら、“password” に任意の単語を入力します。
% cvs co modules
% more modules/modules
   

A.4.4. 他の資料

次の資料は CVS を学ぶのに役に立つでしょう。