«前の日記(2006年09月11日) 最新 次の日記(2006年09月13日)» 編集

Matzにっき


2006年09月12日 [長年日記]

_ [原稿] 日経Linux 2006年11月号

先日も書いた通り、今回のテーマは「HTTP+CGI」。

過去にも何度も書いたことのあるテーマなので、 難しさはそれほどでもない。ただ、まったく同じ文章になってしまいがちなのが 難点だ。さすがにおんなじ文章じゃ、読者に申し訳ない。

あと、生のHTTPやCGIは技術として古いので、 文章が古臭い印象があるのも否めない。 同じく古い技術でも、全然古さを感じさせないものもあるのにな。 たとえば、高階関数とか型とか。

やっぱ、数学にルーツがあるものは強いか。

_ Quilt

Quiltはスタック型のパッチマネージャである。

たとえば中央リポジトリにあるソースコードをローカルにコピーして、 手元で変更を行うとする。それらの変更を塊ごとにパッチとして管理し、 積み重ねておくことができる。

「この変更はやっぱりやめた」という時はパッチをポップすればよい。 また気が変わったらあらためてプッシュする。

中央リポジトリの状態に合わせるためには、以下の手順を行えばよい。

  • スタックに積んであるすべてのパッチをポップする
  • 「cvs update」などでローカルコピーをアップデート
  • あらためてパッチをプッシュする。矛盾があれば解消
  • 必要に応じてパッチを中央リポジトリにチェックイン

これで、ネットワークが切り離されても、 作業単位ごとに変更を管理できる。以前考えていたネットワーク独立型開発にもぴったり(元々その目的で開発された)。

ところがQuiltにも欠点がある。 それはこれから編集するファイルをあらかじめ宣言する(quilt add)必要がある点だ。 Quiltは非常に原始的な(全部shで書いてある)システムで、基本的な原理は オリジナルを別の場所にとっておいて、必要に応じてdiffをとるだけだ。 また、パッチを作る時にもあらかじめ「これからパッチを作る」と 宣言(quilt new)しなければならない。

いずれにしても「あらかじめ」というのがキーワードである。 私のような頭よりも手が先に動くことがあるタイプにはあまり向かない。 そもそもバージョン管理システムそのものが「あ、まずかった」と思った時に巻き戻せる ことを目的としているので、このような「あらかじめ」を要求するのは望ましくない。

そこでちょっと調べてみるとEmacsのQuiltサポート(quilt.el)というものがある。 これはQuiltが管理するディレクトリでは、それを検出してファイルを自動的にread onlyにしてくれるものだ。quilt addしないと編集できないから、ついうっかり失敗ということがない。

これなら使えるかな...、と思ったが

  • パッチ作成宣言はやっぱり「あらかじめ」行う必要がある
  • メールで届いたパッチの適用がしょうしょう面倒(これはquilt.elで検出できない)

うーん、もうちょっと考えてみよう。 GITの上にQuilt相当を実現するStGITというのもあるらしいから、それも調べてみないとな。


«前の日記(2006年09月11日) 最新 次の日記(2006年09月13日)» 編集