From: Akinori MUSHA Date: 2001-01-15T03:27:47+09:00 Subject: [ruby-list:27143] RWiki + CVS # 新しいスレッドにするため、敢えて References を削りました。 At Mon, 15 Jan 2001 00:50:09 +0900, Nakamura Akifumi wrote: > CVSといっちゃうから、話が大きくなっちゃうのかなとか思うです。  CVS レポジトリに履歴を保持するメリットは大きいですよ。それに CVS は大げさなものではなく、むしろある程度以上の規模の開発に 必要な「最低限」のレベルのものです。 > 俺は(理由は異なるが(笑))RCSかなと思っていますもので。 > 差がどこなのかを記録しとくってゆーだけの。  RCS は差分を記録するだけではないです。ブランチ、タグ、マージ、 などの概念や機能があり、 CVS はそれらをそのまま利用しています。 CVS レポジトリの実体は RCS ファイル群 + 管理ファイル群ですし。 > なんていうか、「管理」というよりも、 > 命綱があるからこそ自由に気楽に暴れられる、 > とでもいうような感覚を感じています。Wiki履歴については。 > #自分がかつてRCS使い始めた理由もソレだし。安心して編集できるっていう。  CVS フロントエンドというと大仰な感じがしますが、以下のような 感じで実用レベルになるのではないでしょうか。 * コンセプト - CVS レポジトリがマスター。 - RWiki には cvs commit 機能は持たせない。(権限の問題を考えると 面倒なため) - RWiki サイトは「共有作業ディレクトリ」の位置づけ。逐一変更が commit されてしまうのはどうかと思うし、いちいち ChangeLog を要求 されてはせっかくの手軽さが台無しであろう。 - RWiki からは手動にて変更依頼が作業者用のメーリングリストにと して送られ、参加者の中の誰かが cvs commit するという形を取る。 きりのいい単位で変更を提出できる。「やっぱ今のなし!」も利く。 * 準備 - モジュール全体を CVS レポジトリに import しておく。 - RWiki サイトはレポジトリから checkout した状態でスタート。 - 複数ブランチがある場合は別のディレクトリに checkout すればいい。 * 開発サイクル - 定期的に cron で RWiki サイトを cvs update する。あるいは cvs commit をトリガーにして cvs update する。 - ここで、 RWiki 側で変更していた場合でも cvs の機能により 自動的にマージされる。 - 自動でマージできなかった部分も残るが、これは気付いた人が適宜 直す。(<<<<<<< から >>>>>>> で囲まれているので一目で分かる) - RWiki の各ページに「submit」リンクを追加する。これを押すと 次のような画面になる。(ファイル名を File.rd とする) ChangeLog: +--------------------------------------------------+ |2001-01-15 rwikiuser | | * File.rd: [[ここに入力]] | | | | | +--------------------------------------------------+ rwikiuser の部分は自分の名前に書き換えること。 Diff: [[cvs diff File.rd の出力]] +--------------------------------------------------+ |Index: doc/ja/manual/File.rd | |==================================================| |RCS file: /var/anoncvs/doc/ja/manual/File.rd | |retrieving revision 1.2 | |diff -u -r1.2 File.rd | |--- doc/ja/manual/File.rd 2001/01/14 12:32:06 1.2| |+++ doc/ja/manual/File.rd 2001/01/15 07:45:11 | |@@ -219,6 +219,7 @@ | |[[以下差分が続く]] | +--------------------------------------------------+ +------+ |Submit| +------+ - Diff を見ながら ChangeLog を書く。 - 「Submit」を押すと ChangeLog と Diff を本文に含んだメールが 所定のメーリングリスト宛に送られる。 - Committer の誰かがそれを cvs commit。 * その他 - 「cvsweb」ボタンを付けると便利かも。 - 「revert」ボタンもあった方がいいかも。(RWiki 側での変更を破棄) どうでしょうか?RWiki 本体は二つ三つボタンをつける程度の変更で よく、新規に作る必要があるのは簡単な提出画面だけです。 * * *  CVS が考えられる最高のものだとは誰も思っていませんが、現実的な 解の中ではそこそこでしょう。欠点はいろいろありますが、ある程度の 規模の開発には必須の機能を最低限は備えており、また広く使われて いるだけあって周辺ツールも充実しています。 - 複数ファイルをまとめて扱える。 - 認証機能がある。 - 競合してもマージが容易。 - 複数ブランチを並行開発できる。 - ミラーが容易。(CVSup) - Web フロントエンドがある。(CVSweb, ViewCVS, etc.) - Windows, MacOS, X 用の GUI フロントエンドがある。(WinCVS/MacCVS/ pharmacy, etc.) 少しずつ慣れていけば簡単なので、ぜひ活用して欲しいです。  確か、去年は少なくとも二冊 CVS の解説本が出ていたと思いますので、 書店で手に取られてみてはいかがでしょうか。 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "We're only at home when we're on the run, on the wing, on the fly"