Fossil via SQLite

今、SQLiteのソースを読んだりしているのだが、ふと、昔のソースはどんなだったかが知りたくなったので、探しているとhttp://www.fossil-scm.org/index.html/doc/trunk/www/index.wiki:Fossilなる分散CVSを使っていることをが分かった。なんかもう、最近色々ありすぎてすごいねー。私なんかは、未だにドキュメント管理はCVSだというのに。SVNなんて、あっという間に過ぎ去った感があるし。

とりあえず、コンパイルとか面倒なので、http://www.fossil-scm.org/download.htmlに、Mac OSX用のバイナリがあるようなので、ダウンロードして、ダブルクリックしたが、よくわからない状態になった。ので、port fossilとやったら、とりあえず入った。

Fossilは、軽く説明を読む限りgitのようなイメージで使えるみたい。ただ、SQLiteのホームページを探したけれど、repository-filenameに何を指定すれば良いのかよくわからない。で、ちょっと調べてみるとhttp://osdir.com/ml/sqlite-users/2010-08/msg00056.htmlというメーリングリストがあったので、やってみたら出来ました。

fossil clone http://www.sqlite.org/src sqlite.fossil
fossil open sqlite.fossil
fossil update 1cdfe66714

という感じのようです。fossilのとりあえずの使い方ページは、Fossil: Fossil Quick Start Guideにあります。欲しい情報は、かなり初期の頃のソースなので、それを探してみます。ホームページのリリースノートには、2004年4月からversion3をチェックインみたいなことが書いてありました。fossilでは、timelineというオペレータにbeforeとdateを付けることができるようなので、2004年5月からさかのぼってみました。-nは、取得するエントリ数のようなんですが、だんだん上げていって10000になると、cvsのころのファーストコミットが現れました。

$fossil timeline before "2004-05-23 00:00:00" -n 10000
...
14:26:00 [6f3655f79f] initial check-in of the new version (CVS 1) (user: drh tags: trunk)
14:16:00 [704b122e53] initial empty check-in (user: drh tags: trunk)

$fossil update 6f3655f79f
...
updated-to:   6f3655f79f9b6fc9fb7baaa10a7e0f2b6a512dfa 2000-05-29 14:26:00 UTC
tags:         trunk
comment:      initial check-in of the new version (CVS 1) (user: drh)
"fossil undo" is available to undo changes to the working checkout.
<||