もっとVersionControlを! / セマンティックdiff
----------------------------------------
-----
差分・履歴マニアの一人として、ちょっと気になる記事を見つけた。
Martin Fowler's Bliki in Japanese
もっとVersionControlを!
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?MoreVersionControl
セマンティックdiff
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?SemanticDiff
(via http://capsctrl.que.jp/kdmsnr/diary/20041208.html)
前者は、ソフトウェア開発者以外ももっとVC使えという話。僕もそう思う。
ただ、今あるVCツールはまだ改善の余地があると思う。広まっていて使いやすいCVS
やSubversionでも、importの手間だけで高いハードルになる。リポジト
リを置くサーバを用意しなければならないのも面倒だ。もっと簡単に、クライアントをイ
ンストールしただけでほいほい使い始められるものが欲しい。
クライアントだけで完結していて、リポジトリを作ったりimportしたりする必要が
ないVCツールがあったら、ユーザ層が広がるかもしれない。チェンジセットベースで、P
2P型で、パッチのデータベースをうまく隠蔽していて、マルチプラットフォームで、G
UIやらIDEやエディタへの拡張が用意されたものがあったらいいかも(欲張りすぎ)
。
後者は、差分に加えてその「目的」を示せるようになったらいいなという話。原理的には、V
Cツールが使われているなら、コミットログから該当するメッセージを探し出してdif
fの出力に添えるようなものを書けば、近いものができそうな気がする。
個人的にはそれより先に、
* 文字指向のdiffや、ツリー構造の情報に対するdiff
* 画像や映像といったマルチメディアデータに対するdiff(というか逆に言うと差分抽
出に向いたメディアフォーマット)
* 履歴を含められるファイルフォーマット
* 版管理をサポートしたファイルシステム
などの設計開発がもっと進んでほしいんだけど。
ファイルシステムが版管理の面倒を見てくれるようになったら、アプリケーションはどう
変わるだろうか。妄想してみたい。
* 文書に対するすべての変更はその場で2次記憶に保存される(代わりにUndo/Red
o機能は強化される)
* Saveコマンドはなくなって、代わりにCommitコマンドが配置される
* 文書ファイルをコピーして一部変更して使うような場合は、Branchして変更する
* ファイルマネージャにはファイル同士の履歴と差を表示するインターフェイスが付く
* ファイルを生まれ育ったファイルシステムから離すときは、履歴情報とともにExpor
tする(Macにあったリソースフォークのような扱い?)
このへんのことはきっと誰かが研究してるだろうから、早く実用化されてほしい。