FreeBSD ハンドブック : 開発の最前線: FreeBSD-current と FreeBSD-stable : インターネットを通じたソースツリーの同期 : Anonymous CVS
Previous: インターネットを通じたソースツリーの同期
Next: CTM

17.3.1. Anonymous CVS

原作: Jordan K. Hubbard <jkh@FreeBSD.ORG>

訳: 杉村 貴士 <takas-su@is.aist-nara.ac.jp>.
19 July 1998.

17.3.1.1. 導入

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

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

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

17.3.1.2. Anonymous CVS を使う

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

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

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

ユーザが興味を持つであろうブランチタグの一覧です.

HEAD

主要部をなす流れ, すなわち FreeBSD-current のための名前です. また, どのリビジョンも指定されなかったときにはこれになります.

RELENG_3

FreeBSD-3.x の開発のための流れです. FreeBSD-stable としても知られています. ports コレクションには無効です.

RELENG_2_2

FreeBSD-2.2.x の開発のための流れです. 2.2-stable としても 知られています. ports コレクションにはふさわしくありません.

RELENG_2_1_0

FreeBSD-2.1.x の開発のための流れです - このブランチは 大部分がすたれています. ports コレクションにはふさわしくありません.

ユーザが興味を持つであろうリビジョンタグの一覧です.

RELENG_2_2_6_RELEASE

FreeBSD-2.2.6. ports コレクションにはふさわしくありません.

RELENG_2_2_5_RELEASE

FreeBSD-2.2.5. ports コレクションにはふさわしくありません.

RELENG_2_2_2_RELEASE

FreeBSD-2.2.2. ports コレクションにはふさわしくありません.

RELENG_2_2_1_RELEASE

FreeBSD-2.2.1. ports コレクションにはふさわしくありません.

RELENG_2_2_0_RELEASE

FreeBSD-2.2.0. ports コレクションにはふさわしくありません.

RELENG_2_1_7_RELEASE

FreeBSD-2.1.7. ports コレクションにはふさわしくありません.

RELENG_2_1_6_1_RELEASE

FreeBSD-2.1.6.1. ports コレクションにはふさわしくありません.

RELENG_2_1_6_RELEASE

FreeBSD-2.1.6. ports コレクションにはふさわしくありません.

RELENG_2_1_5_RELEASE

FreeBSD-2.1.5. ports コレクションにはふさわしくありません.

RELENG_2_1_0_RELEASE

FreeBSD-2.1.0. ports コレクションにはふさわしくありません.

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

17.3.1.3. 例

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

-current (ls(1)) をちょっと確認してから消してみます.

% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs
% cvs co ls
% cvs release -d ls

ls(1) のバージョンを 2.2-stable ブランチから調べてみます.

% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs
% cvs co -rRELENG_2_2 ls
% cvs release -d ls

FreeBSD 2.2.2 と FreeBSD 2.2.6 とで ls(1) の変更点のリストを (unidiff で) 作ってみます.

% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs
% cvs rdiff -u -rRELENG_2_2_2_RELEASE -rRELENG_2_2_6_RELEASE ls

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

% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs
% cvs co modules
% more modules/modules
% cvs release -d modules

17.3.1.4. 他の資料

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


FreeBSD ハンドブック : 開発の最前線: FreeBSD-current と FreeBSD-stable : インターネットを通じたソースツリーの同期 : Anonymous CVS
Previous: インターネットを通じたソースツリーの同期
Next: CTM