CVS の利用方法

CVS は、複数の人が同じ対象に対して同時に作業するのを助けるためのプログラム です。すべてのユーザが、メインのリポジトリ (貯蔵庫) のローカルなコピーを作成します。 このローカルコピーは、同じマシンの上にあってもいいですし、 ネットワーク越しでもかまいません。ユーザはローカルコピーを好きなように 変更することができ、変更内容が正しければ、その変更をメインの リポジトリに反映する (cvs commit する) ことができます。

読み取り専用アクセス向けに、 ウェブ フロントエンドを利用可能です。KDE の cervisia のようないくつかのグラフィカルな CVS クライアントもあります。 この文書はコマンドラインプログラム cvs や類似の機能を提供するその他のクライアントでのワークフローについて 説明します。

あなたが最後にローカルコピーをアップデート (cvs update) した後に メインのリポジトリにあるコピーに変更があった場合、CVS は commit を許可しません。 この場合でも、あなたはローカルコピーをアップデートできるので、 これは通常は問題にはなりません。もし、メインのリポジトリへの変更が、 あなたの行おうとしている変更とは別の部分であった場合には、両者の 変更は単に合わせられるだけです。もし変更が、あなたの行おうとしている 変更と同じ場所に及んでいる場合、衝突が発生したので commit する前にファイルを編集して修正しなければならないという 警告が表示されます。

以下の例では、匿名 (anonymous) アクセスが例として取り上げられます。 リポジトリへの書き込み権限があるアカウントを持っている場合には、 そのアカウントを使ってください。anonymous ユーザは変更を commit する権限がないので、変更を行うつもりがあるなら、 前もってアカウントを取得することをお勧めします。書き込み権限のセクションを読んでください。

CVS を使い始めるにあたって、まず CVS サーバに login しなければなりません。

   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml login

(パスワードを求められたら、単に enter を押してください)

wml ファイル群全体をあなたのローカルマシンに取得 (check out) するには、次のようにしてください。

   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml checkout webwml

wml ファイル群の一部だけをコピー (check out) することもできます:

   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml checkout -l \
          webwml webwml/<language>
   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml checkout \
          webwml/Perl webwml/english/template webwml/<language>/Pics
   cvs -d :pserver:anonymous@anonscm.debian.org:/cvs/webwml checkout \
          webwml/<language>/<path to desired files>

必要とするサブディレクトリやファイルの数だけ、この操作を繰り返してください。 2 行目は、WML ファイルから HTML を生成するのに必要な全ファイルを含んでいます。 ただし、一部分の check out は実際にはサポートされていないので、 上記の操作は必ずうまくいくとは限りません。

Alioth アカウントと、それに付随する公開 SSH 鍵がある場合はそれを使うことが出来ます:

   cvs -d :ext:username@cvs.debian.org:/cvs/webwml checkout webwml/english/doc

これから先は、「-d :ext:...」の部分を必要としません。 数日おきに、

   cvs update -d

を実行し、リポジトリの変更を受け取ってください。update につける -d オプションは、自動的に新ディレクトリを追加するという意味です。 一部を取得 (check out) していた場合、こうすると省略していたディレクトリをすべて取得することになります。 — その場合は cvsup.py スクリプトを使う手もあります。

同じオプションをいつもいつも書かなくても済むように、 ~/.cvsrc ファイルを作るとよいでしょう。例えば、 以下のような内容にします。

cvs -z9
update -d -P
diff -u

以下の内容は、リポジトリへの書き込み権限がある人に向けたものです。 あるページへの変更作業が完了したら、以下のようにしてその変更をリポジトリに 反映 (commit) してください。

   cvs commit <file>.wml

または

   cvs commit <dir>    (<dir> の中のすべてのファイルを commit する)

または

   cvs commit          (カレントディレクトリ以下のすべての変更を commit する)

もしそのページを最初に翻訳した場合には、cvs commit の前に

   cvs add <file>.wml

を実行する必要があります。cvs add は再帰的ではないので、ディレクトリの内容を cvs add するよりも前にそのディレクトリ自身を追加しなければなりません。
CVS について詳しくは、info cvs を使ってください。

コミットログに Closes: #nnnnnn を含めると、 バグ番号 #nnnnnn はそのコミットにより自動的に閉じられます。 これの正確な書式は Debian ポリシーのものと同一です。

Debian や DebConf、SPI ウェブサイトへのリンクに HTTPS を使わないようにしてください。 このサイトの SSL 証明書はすべて SPI 認証局により署名されていて、Debian が動作しているマシンでは信頼されていますが、 他のプラットフォームのブラウザでは基本的に信頼されていません。Debian ウェブサイトに向けて HTTPS のリンクを使うと、訪問者を混乱させるような SSL エラーをブラウザが発し、Debian への苦情が出ることになります。SSL が不要であることを確認している Debian ウェブサイトの一部への HTTPS リンクが含まれるコミットは CVS リポジトリで拒否します。

CVS 書込み権

手伝う方法がわかっていて、 ウェブチームまたは地域化チームに受け入れられるパッチを十分に提供していれば、 ウェブサイトへの書き込み権限を得られるのではないでしょうか: Alioth の webwml プロジェクトへの参加を要請してください (アカウントを持っていない場合は Alioth アカウントを作る必要があります)。要請に際してはどの言語、 ウェブサイトのどの部分で作業しようと思っているのか、 誰が保証人となってくれるのかなど有用なことを書いてください。