SCM Boot Camp in Nagoyaに行って、Darcsの紹介してきました
@kyon_mmさんに誘わてSCM Boot Camp in Ngaoyaに行ってきました。 当日はGitのサポータしたり、ワッフル食べたりしてました。ワッフル、実においしかったです。
参加する2週間前ぐらいになんとなくDarcs/CAMPのことを調べてたらガチですごかったので、懇親会の闇LTでDarcsの紹介をしてきました。いや、マジですごいんですって。
LT資料『Darcsの紹介』
Darcs紹介@20120423-scmbc
View more presentations from Hiroki Mizuno
何がすごいか
いきなりボクの勝手な妄想でアレですが、gitとかmercurialとかの他の分散管理システムは単に実装があるだけか、あるいは、せいぜいレポジトリフォーマットの仕様がある程度だと思っています。
一方、Darcsは「変更とは何か」「マージは何をやるか」といったことを形式的に定義したPatch theoryを作り、その上で実装を行なっています。
そのおかげでこんなすばらいしことがあります。
- マージやパッチの並び換えの正しさは証明されているので、致命的な欠陥はありえない (実装ミスはあるかも..)
- Darcs特有の機能は(あまり)ないので、他のDVCSの挙動の理解にも役立つ
- 抽象的に定義されているので、他の言語や他の用途に流用しやすい
何が証明さているか
まだ参考文献を読み切れていないのですが、少なくてもPatch theoryでは以下の性質が証明されています
- どういう状況なら、cherry-pickしても問題がないか
- どういう状況なら、パッチを並び換えても結果がかわらないか
- どういう状況なら、マージ可能か
まとめ
Darcsすごいので、みんな勉強しましょう!
ブランチを持っていなかったりしてツールとしてはちょっと微妙な気もするけど、それでもなおDarcsはすばらしいのです。