先日も書いた通り、今回のテーマは「HTTP+CGI」。
過去にも何度も書いたことのあるテーマなので、 難しさはそれほどでもない。ただ、まったく同じ文章になってしまいがちなのが 難点だ。さすがにおんなじ文章じゃ、読者に申し訳ない。
あと、生のHTTPやCGIは技術として古いので、 文章が古臭い印象があるのも否めない。 同じく古い技術でも、全然古さを感じさせないものもあるのにな。 たとえば、高階関数とか型とか。
やっぱ、数学にルーツがあるものは強いか。
Quiltはスタック型のパッチマネージャである。
たとえば中央リポジトリにあるソースコードをローカルにコピーして、 手元で変更を行うとする。それらの変更を塊ごとにパッチとして管理し、 積み重ねておくことができる。
「この変更はやっぱりやめた」という時はパッチをポップすればよい。 また気が変わったらあらためてプッシュする。
中央リポジトリの状態に合わせるためには、以下の手順を行えばよい。
これで、ネットワークが切り離されても、 作業単位ごとに変更を管理できる。以前考えていたネットワーク独立型開発にもぴったり(元々その目的で開発された)。
ところがQuiltにも欠点がある。 それはこれから編集するファイルをあらかじめ宣言する(quilt add)必要がある点だ。 Quiltは非常に原始的な(全部shで書いてある)システムで、基本的な原理は オリジナルを別の場所にとっておいて、必要に応じてdiffをとるだけだ。 また、パッチを作る時にもあらかじめ「これからパッチを作る」と 宣言(quilt new)しなければならない。
いずれにしても「あらかじめ」というのがキーワードである。 私のような頭よりも手が先に動くことがあるタイプにはあまり向かない。 そもそもバージョン管理システムそのものが「あ、まずかった」と思った時に巻き戻せる ことを目的としているので、このような「あらかじめ」を要求するのは望ましくない。
そこでちょっと調べてみるとEmacsのQuiltサポート(quilt.el)というものがある。 これはQuiltが管理するディレクトリでは、それを検出してファイルを自動的にread onlyにしてくれるものだ。quilt addしないと編集できないから、ついうっかり失敗ということがない。
これなら使えるかな...、と思ったが
うーん、もうちょっと考えてみよう。 GITの上にQuilt相当を実現するStGITというのもあるらしいから、それも調べてみないとな。