SCM Boot Camp in Nagoyaに行って、Darcsの紹介してきました

@kyon_mmさんに誘わてSCM Boot Camp in Ngaoyaに行ってきました。 当日はGitのサポータしたり、ワッフル食べたりしてました。ワッフル、実においしかったです。
参加する2週間前ぐらいになんとなくDarcs/CAMPのことを調べてたらガチですごかったので、懇親会の闇LTでDarcsの紹介をしてきました。いや、マジですごいんですって。

LT資料『Darcsの紹介』

何がすごいか

いきなりボクの勝手な妄想でアレですが、gitとかmercurialとかの他の分散管理システムは単に実装があるだけか、あるいは、せいぜいレポジトリフォーマットの仕様がある程度だと思っています。
一方、Darcsは「変更とは何か」「マージは何をやるか」といったことを形式的に定義したPatch theoryを作り、その上で実装を行なっています。
そのおかげでこんなすばらいしことがあります。

  • マージやパッチの並び換えの正しさは証明されているので、致命的な欠陥はありえない (実装ミスはあるかも..)
  • Darcs特有の機能は(あまり)ないので、他のDVCSの挙動の理解にも役立つ
  • 抽象的に定義されているので、他の言語や他の用途に流用しやすい

何が証明さているか

まだ参考文献を読み切れていないのですが、少なくてもPatch theoryでは以下の性質が証明されています

  • どういう状況なら、cherry-pickしても問題がないか
  • どういう状況なら、パッチを並び換えても結果がかわらないか
  • どういう状況なら、マージ可能か

まとめ

Darcsすごいので、みんな勉強しましょう!
ブランチを持っていなかったりしてツールとしてはちょっと微妙な気もするけど、それでもなおDarcsはすばらしいのです。