[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12015] RWiki + CVS

From: "Akinori MUSHA" <knu@...>
Date: 2001-01-14 18:49:53 UTC
List: ruby-dev #12015
 ruby-dev に振り直します。フォローはこちらにお願いします。

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"

In This Thread

Prev Next