[CVS ダイジェスト]

* cvs repository tree

     $CVSROOT(openlab.jp:/circus/cvsroot)
        |
        |
        +-- skk --+-- main (Main distribution -- Emacs Lisp, tutorials, etc)
                  |
                  |
                  +-- dic (Dictionaries)
                  |
                  |
                  +-- tools (Dictionary maintenance tools)
                  |
                  |
                  +-- pySKK (SKK related libraries using python)
                  |
                  |
                  +-- web (Web page html files)

* cvs main trunk/branch history map

                                  +---------+    +---------+
                 legacy branch    | 10.62.2 |----| 10.62.x |
                                / +---------+    +---------+
                               /
                              /
+----------------+    +------------------+    +---------------+    +-----+    +-----+
|10.62 (skk10_62)|----|10.62a (skk10_62a)|----| 11.3 (Sakurai)|----|11.4 |----|11.x |  <- The main trunk
+----------------+    +------------------+    +---------------+    +-----+    +-----+     (daredevil skk)
                                                     /
                                                    /
                                                   /
                                    +-----+    +-----+    +-----+
                daredevil branch    |11.1 |----|11.2 |----|11.x |
                                    +-----+    +-----+    +-----+
* cvs の入手方法

CVS は 以下のサイトで配布されています。

http://ftp.gnu.org/non-gnu/cvs/

Windows で CVS を利用し開発に参加される方は、cygwin 環境を利用して下さ
い。詳細については CVS_on_Windows をご覧下さい。

cvs に関する情報は

http://www.nongnu.org/cvs/

から入手可能です。

また、CVS に関する日本語の情報として、以下のようなページがあります。

http://radiofly.to/nishi/cvs/
http://www.itojun.org/hack/cvs/tut-kernel.html

なお、Emacs 21.x では pcvs (pcl-cvs) というフロントエンドが付属してい
ます。

* cvs サーバからの SKK ソースの入手

** Login

まず、guest アカウントで openlab.jp の cvs server にログインし
ます。

     $ cvs -d :pserver:guest@openlab.jp:/circus/cvsroot login

パスワードの入力を促すプロンプトが出るので、パスワードとして `guest'
を入れ、CR しましょう。

     CVS password: guest (CR)

~/.cvspass というファイルに password が記録され、次からは明示的な
login は不要になります (*注1)。

** Checkout

Checkout して cvs server からソースをもらってきます (このファイルをワー
キングコピーといいます) (*注2)。Maintrunk (Daredevil SKK-11.x) を入手
したければ、下記のようにします

     $ cvs -d :pserver:guest@openlab.jp:/circus/cvsroot checkout skk/main

Legacy branch (maintenance version of SKK-10.x) を入手したければ、下記
のようにします。

     $ cvs -d :pserver:guest@openlab.jp:/circus/cvsroot checkout -r legacy skk/main

カレントディレクトリの下にできる skk/main というディレクトリにワーキン
グコピーがコピーされます。

     $ cd skk/main

コンパイルして使うなり、編集するなりご自由にどうぞ (但し編集結果を
server のソースに反映するにはご自分専用の account が必要です。cvs
account の発行を参照)。

** Update

ワーキングコピーは残しておくと、cvs server 上のソースに変更が加えられ
たときに差分だけ取り寄せ、ワーキングコピーを最新の状態にすることができ
ます。

ワーキングコピーは、openlab.jp:/circus/cvsroot を指しているこ
とを記憶している (*注3) ので、update から始めると、自動的にログインで
きます。

   $ cvs update -dP

update の -d オプションは repoitory 上に存在しているのに、手元の
working copy 上にないディレクトリがあれば追加し、-P オプションは逆に
repositry 上に存在しないディレクトリを working copy から消し去ります。
.cvsrc ファイルに

     update -dP

と書いておき、常にこれらのオプションを付けることをお勧めします。

* 手元のソースを変更して cvs server にあるソースに変更を反映する (commit, tag)

** cvs での開発参加

openlab.jp に SSH2 公開鍵 (OpenSSH) を登録することで開発に参加できるよ
うになります。 

まず SSH2 公開鍵 (OpenSSH) を skk-owner@ring.gr.jp 宛てに送付してくだ
さい (GPG による署名付きが望ましい)。登録完了の通知をお送りします。

OpenSSH でない、本家商用の SSH2 については、動作確認は取っていませんが、
当方で OpenSSH 形式に鍵を変換することで、商用 SSH2 client→openlab.jp
の OpenSSH サーバというアクセスが可能なようですので、ご相談下さい。

** Login

SSH 経由のアクセスにおいては login は必要ありません。skk-cvs というア
カウントを committer 全員共通で使用します。

** Checkout/Update

% cvs -d:ext:skk-cvs@openlab.jp:/circus/cvsroot co skk/main 

で checkout できます。update なども同様です。

** Commit

下記の手順を踏んで commit して下さいね。

(a)まずワーキングコピーのソースを自分の環境でコンパイル & インストール
   します。

(b)自分が普段使っている環境で動作確認をして下さい。(少なくとも一度、
   SKK を起動 & 終了して問題がないことを確認してね)。 

(c)ML skk@ring.gr.jp に投稿するためのリリースノートを書いて下さい (主
   な変更点が分る程度の簡単なもので結構です) 。この際、必ず上記でイン
   ストールした新たなワーキングコピーからコンパイルした SKK を使用して
   書いて下さい。 

(d)リリースノートの記事を書いている間中も SKK に問題がなければ、ワーキ
   グコピーを commit して上記リリースノートを ML skk@ring.gr.jp に投稿
   して下さい。

(e)ChangeLog の更新をお忘れなく (英語で書いていますが、英語が苦痛なら
   日本語で書いても全然問題ありません) (*注4) 。

     $ cd skk/main
     $ cvs commit -m "あなたのコメントをここに。" ChangeLog
     $ cvs commit -m "あなたのコメントをここに。" skk.el

** Tag

Daredevil SKK, legacy branch ともに Openlab でバージョンが振られたアー
カイブが公開される度に tag 付けします。daredevil の tag 付けルールは、
Codename というファイルの中身を参照して下さい (但し、tag には空白文字
を含めることができないようなので、tag 付けするのは、Codename のうち、
駅名の部分だけです)。

     $ cvs tag (Codename) .

legacy branch はtag は skk10_62, skk10_63, skk10_64... というふうに付けます。

* 脚注

** 注1

ワーキングコピーは、openlab.jp:/circus/cvsroot を指しているこ
とを記憶している (*注3) ので、ワーキングコピーを置いているディレクトリ
で checkout, update, commit, tag などの cvs コマンドを実行すると、自動
的に openlab.jp にログインして、それぞれのコマンドを実行します。

** 注2

~/.cvsrc に、

     cvs -z3

と書いておくと、cvs server との通信内容が圧縮されます。z オプションの
数字が大きい程圧縮率が高いのですが、圧縮率が高い程サーバの負担が高いの
で、3 ぐらいが丁度良いようです。

** 注3

ワーキングコピーのあるディレクトリ (及びそのサブディレクトリ) の
CVS/Root というファイルにサーバ情報が保存されています。
 
** 注4

Emacs の cvs front end、pcl-cvs を使うと、commit のために C キー
(`cvs-mode-changelog-commit') を押すと ChangeLog から、当日 commiter
自身が書いた部分を抜き出して、log を書く手助けをしてくれます。

Local variables:
mode: outline
end:
