Zed ShawがFossilを使う理由

http://sheddingbikes.com/posts/1276624594.html

mongrelと「Ruby is Ghetto」で有名なハッカーZed ShawはバージョンコントロールにFossilというSCMを使っている。
http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki

とりあえず使ってみたい人はここを見るといいでしょう: http://d.hatena.ne.jp/Jxck/20100714

テングはgitを使っているので、新しいscmの話とかあまり関心ないが、sqliteの作者Chris Newmanが作ったものであるのなると興味がわく。

fossilを一言で言うと「誰でも簡単にホスティングできるプロジェクト管理ソリューション」だろう。githubやbitbucketのようなSCMのフルサービスが提供している重要な機能を、第三者に頼ることなく自前で提供できる。

テングの理解するところのその機能は:

  • バージョンコントロール
  • バグ管理
  • wiki
  • 分散型: 上記のデータをノード間でシェア
  • 組込まれたHTTPによるネットワークサポート
  • CGIにより上記にアプリケーションを簡単に公開できる
  • これらの全ての機能がたった一つのコマンドで実現される (さすがNewman氏!)

mercurialやgitはバージョンコントロール・エンジンだけで、プロジェクト管理に必要なその他のツールは外部サービスに頼らなくてはいけないのをfossilは一つのコマンドでこなす。

プロジェクト参加者はfossilをインストールするだけで、プロジェクト管理にフルに参加できる。

さてZedのfossilの好きな理由にもどると

会社の売り買いが前提のスタートアップ文化でgithubやbitbucketのようなサービスが
いつ消えないという保証もない。Etherpadのように、、

  • 既存ツールで自前でやると、バージョンコントロールTracwikiなどを一々設定しなくてはいけない
  • fossilだと組込まれたウェブサーバで簡単に公開できる
  • 権限を一般ユーザに落し、chrootするのでセキュリティー面も安心。
  • Cによるネーティブプログラムなので、inetdからでも走らせることができる。
  • メモリ消費量もすくなく、小さなスライスからでも楽に稼働
  • 上記の限られた環境でもHackerNews, Reddit, Slashdot(effect)からの膨大なトラフィック

チューニングもキャッシュも無しにこなすパフォーマンス

  • プロジェクト管理ソフトの管理をするんじゃなくて、コーディングに専念したいのでfossilがいい。
  • fossilの御陰で最近プロジェクとがガンガン出せるようになった

「もし『fossilのCSSがかっこわるいから、貴方のプロジェクトには貢献できない』とかいうやつがいても心配はない。そんなやつとはプロジェクトやりたくないから」とZedらしく括っている。