NetBSD CVS HOWTO
導入と目的
始めよう
CVSを使う
その他役に立つCVSの操作
他の情報源
導入と目的
CVSとは何か? (トップ)
CVS とはConcurrent Versions System (協調バージョンシステム) の略です。 CVSは同一ファイルで作業する複数の開発者によるソースの変更を追跡しつづける ように設計されているソースコントロールあるいはリビジョンコントロール ツールです。開発者が選択したように同期をとりつづけることが できます。特に、CVSはNetBSDプロジェクトでは ソースツリーを維持するツールとして使われています。
重要なのは、CVSの協調機能のおかげで複数の人々が同時に作業できる ことに注目することです。RCSとは違いファイルのロックはありません。
始めよう
この章ではシステム上にCVSをインストールする基本的なステップを解説します。
CVSのインストール (トップ)
ローカルマシンにCVSをインストールする必要があります。 全ての作業を行うマシンであって、CVSのサーバーではありません。 マシンにCVSがすでにインストールされていなければ、 パッケージコレクション から CVS をインストールして下さい。
CVS用の環境設定 (トップ)
CVSを使う予定であるローカルマシンで、シェルにcsh か
tcshを使っていれば、.cshrc
ファイルに
以下の行を付け加えて下さい。
setenv CVSEDITOR vi setenv CVSROOT yourusername@cvs.NetBSD.org:/cvsroot setenv CVS_RSH ssh
もしsh か bashをお使いでしたら、
.profile
ファイルに以下の行を付け加えて下さい。
CVSEDITOR=vi CVSROOT=yourusername@cvs.NetBSD.org:/cvsroot CVS_RSH=ssh export CVSEDITOR export CVSROOT export CVS_RSH
CVSの作業用ディレクトリーを作る (トップ)
私は自分のマシン上に/usr/cvs
にCVS関連のものを
全て置いていますが、これは人の好みによります。
このドキュメントの残りではマシンに/usr/cvs
ディレクトリーを
作ったものとします。もう一度繰り返しますが、これはローカルマシンであって、
CVSサーバーではありません。
CVSを使う
この章ではCVSを使う基本的なステップを説明します。
例 (トップ)
この章では空の/usr/cvs
ディレクトリーから始め、
htdocs/people/
モジュールを追加し、変更を加えてコミットする方法を示します。
基本的なステップは以下の通り:
cd /usr/cvs cvs checkout htdocs/people cd htdocs/people vi developers.xml make cvs ci developers.xml developers.html
これらのステップを以下により詳しく説明します。
cvs checkout htdocs/people
このコマンドで、CVSが
htdocs/people
というディレクトリーをローカルマシンにチェックアウトします。
これは htdocs/people
以下にある各ファイルの最新バージョンが
CVSサーバーからローカルマシンへコピーされることを意味します。
加えて、
CVS
ディレクトリーが
/usr/cvs
,
/usr/cvs/htdocs
,
/usr/cvs/htdocs/people
の中に作られます。重要なので覚えておいて欲しいのは、CVSのチェックアウトは
RCSにあるチェックアウトとは違い、ファイルをロックしません。
つまり、他の開発者がチェックアウトされたファイルにもアクセスできるのです。
一度ディレクトリーをローカルマシンにチェックアウトしたら、
このディレクトリー用に再びcvs co、つまり
cvs checkout
をする必要はありません。もし以前チェックアウトしたディレクトリーを最新のバージョンへ
アップデートしたければ、例えば単純に
cvs update htdocs/people
とすればよいです。
ディレクトリーをチェックアウト (以前に目的のモジュールをチェックアウト していれば、アップデート) したら、次はファイルを編集します。 編集が全て完了したら、以下のようにします:
make
こうすると、 developers.xml
ファイルをもとに
developers.html
ファイルが作り直されます。それから以下のようにします:
cvs ci developers.xml developers.html
このコマンドは新しいバージョンを反映するため、 CVSサーバーに変更部分をアップロードし、各ファイルのRCSヘッダーをアップデートします。 変更をチェックイン (コミット) したら、変更に関して短く書き記すように促されるでしょう。
ただし、ソースツリー内での新しい項目の追加とファイル再生成は、 普通はそれぞれ別に commit します。
CVS モジュール (トップ)
CVSでは、モジュールとは一つのファイルや複数のファイルがあるディレクトリーを 指すこともありますし、ディレクトリーツリーの全体を指すこともあります。 NetBSD のトップレベルCVSモジュール のリストでは、NetBSDツリーのトップレベルCVSモジュールを列挙しています。 特に注目すべき他のトップレベルモジュールは以下の通りです:
- htdocs
- NetBSD のWWW ページ。
- othersrc
- NetBSD に関連があるが NetBSD そのものではないコード。
トップレベルモジュールはそれぞれ、トップレベルを全てチェックアウト
(し、アップデート) することも、低いレベルのモジュールをチェックアウト
(し、アップデート) することも可能です。
例えば、htdocs
モジュール全体をチェックアウトするには、
こうします:
cd /usr/cvs cvs checkout htdocs
htdocs/people
サブディレクトリーを入手するだけならこうします
cd /usr/cvs cvs checkout htdocs/people
これらの例のように、一度モジュールをチェックアウトする必要があることを
忘れないでください。例えば、すでに
htdocs
モジュールを
チェックアウトして、最新のものにしたい場合は、こうします:
cd /usr/cvs cvs update htdocs
新しいパッケージのインポート (トップ)
この章では 新しいパッケージのインポート の説明をいくつか補足します。
新しく作ったパッケージを追加する例をとりあげましょう。
この例ではCVSの材料が
/usr/cvs
にあり、
pkgsrc
が
そのサブディレクトリーにあると仮定します。
新しいパッケージをfoo/bar
として、
/usr/cvs/pkgsrc/foo/bar.work
ディレクトリーの中にあるとします。
このパッケージをソースツリーへインポートする段階は以下の通りになります:
cd /usr/cvs/pkgsrc/foo/bar.work # 通常のテスト、つまりpkglintなどをします。 # files/patch-sum ファイルを生成するために、'make makepatchsum' するのを # 忘れないでください。 grep TNF /usr/pkgsrc/doc/pkgsrc.txt # このコマンドで"cvs import" を行うにあたり文法的に正しいかがわかります。 # (/usr/pkgsrc は/usr/cvs/pkgsrc へのシンボリックリンクです) 。 cvs import pkgsrc/foo/bar TNF pkgsrc-base # "bar.work" ではなく、"bar" であることに注意して下さい。 cd ../../.. cvs checkout pkgsrc/foo/bar # 全てが正常に行われたか確認するため、新しくインポートされたパッケージを # チェックアウトします。 cd pkgsrc/foo cvs update Makefile vi Makefile # pkgsrc/foo/Makefile にbarを追加します。 cvs ci -m 'add & enable bar' Makefile # pkgsrc/foo/Makefile へ変更をチェックインします。 cd /usr/cvs/pkgsrc/doc cvs update CHANGES-YYYY # これにより、最新のCHANGES-YYYYを確実に取得します。 vi CHANGES-YYYY # foo/bar パッケージへの変更を書いたメモを作ります。 cvs ci -m 'Added foo/bar version 17.42' CHANGES-YYYY # CHANGES-YYYY をチェックインします。
その他役に立つCVSの操作
CVS 出力 (トップ)
さまざまなCVSのタスクを実行すると、関係するファイルのリストをみることが あるでしょう。ファイル名は一文字のコードで表されます。 コードの概要は以下の通りです:
- Updated (更新)
- Patched (パッチ)
- Conflict (コンフリクト)
- Modified (ローカルで) (変更済み)
- Added (追加済み)
- Removed (削除済み)
- ? (CVSの管理外)
他の情報源
NetBSD 特有 (トップ)
- pkgsrc ホーム ページ。
- 役に立つ NetBSD の開発者情報。
- 完全な pkgsrc ドキュメント。
CVS 特有 (トップ)
- CVS のマニュアル
- CVS のFAQ
- Cyclic Software という CVSをメンテナンスしている会社
- Open Source Development with CVS, 3rd edition, web 上で公開されている書籍 (訳註: 日本語訳)。