3.6. CVS

LDP では、文書の著者に CVS アカウントを発行しようとしています。 それには、次のような理由があります。

  1. CVS なら、作成した文書のオフサイト・バックアップが持てる。他の 著者へ文書の引き継ぎをするときでも、CVS からその文書を取ってきて、 直ぐに作業に入れる。以前のバージョンの文書が必要になったときでも、 問題なく取り出すことができる。

  2. 何人かで、ひとつの文書を作る際に非常に便利。CVS を使えば、自分が編集中 の時に、他人が加えた変更の内容を知ることができるし、そうした変更をそのまま 取り込むこともできる。

  3. 変更箇所のログを保存できる。SGML 処理系が実際の処理に取りかかるより先に、 前もって処理されるような特別なタグを使えば、そうしたログ(や日付スタンプ)を自動 的に文書に埋め込むことができる。

  4. 新規文書を作成して提出すると、LDP ウェブサイトも自動的に更新される ようなプログラムを作ることができる。これはまだ実現されてはいないけれど 是非やってみたいことです。今のところ、CVS の更新によって、HOWTO コーディネータに LDP ウェブページを更新するよう通知が行くようになって いますが、この仕組みを使うと SGML コードをメールで送る必要がなくなります。

CVS が全く初めてなら、いくつかウェブページがあるので、見ておくと 役に立つかもしれません。

3.6.1. CVS アカウントの入手

まず、LDP にある CVS リポジトリのアカウントを入手する必要があります。 これは、CVS が使うルートディレクトリそのもので、そのサブディレクトリと して (HOWTO や mini HOWTO などの)いくつかのプロジェクト用のディレクトリ が作成されています。

アカウントを取るには、ハッシュ化されたパスワードとユーザ ID を作成しな ければなりません。ハッシュ化されたパスワードを使うと、CVS グループが送信者の パスワードを知らずとも、暗号化されたパスワードを CVS グループに送ることが できます。それには、次のようなコマンドを bash (もしくは sh) から打って ください。

bash$ echo your_password | perl -e "print crypt(<>,\
join '',('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]),\"\n\""

上記コマンドの出力を、希望するユーザ ID と一緒に までお送りください。各自の CVSROOT ディレクトリが作成されたあとで、その旨の返答メールが届くので、それが 届いた時点で、CVSROOT にログインして、すべてが適切に設定されてることを 確認してください。

bash$ export CVSROOT=:pserver:your_userid@cvs.linuxdoc.org:/cvsroot
bash$ cvs -d $CVSROOT login

(your_userid の部分は、受け取った返答メール にあるユーザ ID に置き換えます。)

パスワードを尋ねられて、そのあとで、CVS リポジトリに読み書きモードでの アクセス権が与えられます。cvs login コマンド は一度使うだけでシステムへのアクセス権が得られ、.cvspass にパスワードが保存されるので、次からは cvs login を打つ必要はありません。 CVSROOT を設定して、作業を続けましょう。次のコマンドで、LinuxDoc リポジトリ 全体をコピーすることができます。

bash$ cvs get LDP

ほかにも、自分で作成した文書の SGML ソースが欲しいときは、次のコマンドを 打ってください。

bash$ cvs get LDP/howto/docbook/YOUR-HOWTO.sgml
bash$ cvs get guide/docbook/YOURGUIDE 

3.6.2. それ以外の CVS リポジトリへのアクセス方法

3.6.2.1. 匿名 CVS アクセス

(LDP 文書の出版を希望する方など、)アカウントの不要な方でも、 匿名 CVS アクセスが利用できます。その場合、リポジトリは読み出し専用に なります。

bash$ cvs -d :pserver:cvs@anoncvs.linuxdoc.org:/cvsroot login

パスワードには、"cvs" を使います。そうすれば、上記と同じように LinuxDoc モジュールが入手できます。匿名 CVS サイトの更新は、メインサイトより 30 分ほど 遅れるので注意してください。

3.6.2.2. Web 経由での CVS ファイル

CVS リポジトリには、Web 経由でもアクセスできます。 http://cvsweb.linuxdoc.org/index.cgi/LDP

3.6.2.3. グラフィカルインターフェイスを使う

CVS にはグラフィカルインターフェイスがあります。 http://freshmeat.net/appindex で CVS をキーワードに検索すれば、 一覧が表示されます。

3.6.3. ファイルの更新と CVS

CVS には、$Id$ という特別なタグがあり、 これを使って文書に直接日付とバージョンを自動的に入れることができます。 commit した後で、CVS がこのタグを $Id: cvs.sgml,v 1.3 2000/08/24 20:31:01 markk Exp $ のように変更します。このタグを文書内に書いて おくと、ファイルを変更するたびに自動的にそのタグが書き換えられ、 変更するごとにリビジョン番号を上げることができます。

更新した文書を CVS サーバにアップロードする準備が整ったら、 cvs ci -m "comment" 文書名.sgml とコマンドを打ってください。-m "comment" は必要ではありませんが、 これを入れないと、(普通は vi か、環境変数 EDITOR に設定された 何らかの)エディタが立ち上がって、変更点についてのコメントを追加するよう 求められます。

ldp-discuss メーリングリスト上での議論からも詳しい情報が得られます。

文書の作成中に LDP CVS ツリーを使っている場合は、公開準備が整った 時点で LDP に知らせる必要があります。 にメールを送ってください。その際、文書のタイトルと、文書ファイルの LDP CVS ツリー内での相対パス名を本文に書いておいてください。