バージョン管理ソフトというものは、もうすごく便利なものだなぁと思います。それでいて開発する人たち以外にはあまり使われていない印象がありますね。会社でもあまりみんな使っていないし。ファイルを時間ごと保存、管理できる、というのはきっと 「書類、ドキュメント」や「メール」や「デスクトップ」といった実生活でのメタファーを超えてしまっているからなんでしょうか。
Martin Fowler's Bliki in Japanese - パーベイシブなバージョン管理:
の記事に、Apple の TimeMachine はとても面白いインターフェイスだ。TimeMachineの登場が皆にもっとバージョン管理やバックアップについて考えさせるきっかけになるかも知れない、みたいなことが書かれていました。
AppleのTimeMachineのインターフェイスってどんな感じなんでしょう。時間軸を直感的に操れるようなインターフェイスなのかなぁ~。たしかにユーザーインターフェイスをどうこうする分野でアップルの右に出るものはいない気がします。
ところで僕は会社でSubVersion と TortoiseSVN を使っているのですが、最近 svk という分散バージョン管理ソフトが流行っているということでインストールしてみました。
docファイルなど、バイナリファイルでミラーリポジトリと衝突状態を作ってしまうとファイルが壊れてしまったり、よくわからないところもありますが、作業コピーがきれい(変なフォルダができない)のと、ブランチ間のマージが自動的に行えるところなんてすごいですね。ローカルの Depot も複数扱えるそうなので、小分けに管理できていいかもしれません。
WhySVK
にSVKの魅力が語られていますが、説得力があります。
・パフォーマンスがよい(svk log, svk statusが早い)
・省スペース(1.3G repository, 35k revisions に於いて、
svn の working copy は 2.2G
svk の mirror は 1.3G で working copy は 750M
svk は 200M の節約になり、しかもすべてのリビジョンが利用できる
僕自身、svk の使い方がいまいちイメージできなかったのですが、この秀逸なドキュメントでなんとなく理解できました。これで、ネットワークが無い場所でも、自分の Depot でバージョン管理しながら開発できるイメージがつかめました。svk すごい!
SVK - a visual guide: svk-visual-guide.pdf
あと、チェックアウトしたワーキングコピーの情報や、ミラーリングの情報はすべて svk が知っています。ワーキングコピーを消去したいときは、svk にそのことを伝えてやら無ければいけません。
svk checkout --list
svk checkout --detach
なんかを使うようです。
=====
まえに誰が言っていたか忘れましたが(ばばばばん氏かな)、「会社で皆が大切に編集していた共有ファイルを、誰かが誤って消してしまってもう大変なことになったことがあった」、といっていたことがありました。確かに、共有ファイルはいつでもそういう目にあう危険なところがありますよね。お手軽で便利な反面、みんなの善意というかリテラシーを信用した上で成り立っている仕組みというか、そういう本質的に危ういところがあるような。。
きっとこういうシチュエーションにもバージョン管理が活躍できるところなんでしょう。
コメント