TortoiseBZRの新型キャッシュを実装した

TortoiseBZRはTortoiseSVNの動作を移植しているんだけど、TortoiseSVNが各ディレクトリに管理ディレクトリを作るのに対してbzrは作業ツリーのトップにしか管理ディレクトリを作らないので、TortoiseSVNのキャッシュ構造だとすごい無駄なことをしていた。作業ツリー単位で一気にキャッシュを構築することでだいぶ速くできた。
まだtrunkにマージするのは怖いので、しばらくは自分でドッグフードを食べるつもり。一緒に人柱になってくれる日と募集中。使い方は以下の通り。

0. bzr-1.18-setup.exe をインストールしておく。
1. Pythonとbzr最新版のpython-based-installer をインストールする
2. qbzr を Python\Lib\site-packages\bzrlib\plugins\qbzr にインストールする.
   (%USERPROFILE%\application data\bazaar\2.0\plugins\qbzr でも可)
3. 適当なディレクトリ (ここでは C:\tbzr) にソースを展開する。
     bzr branch lp:~songofacandy/tortoisebzr/newcache c:\tbzr
4. 環境変数 PYTHONPATH を 3 のディレクトリ (C:\tbzr) に設定する
5. tbzrのuiをビルドする
     cd c:\tbzr
     python setup.py build_ui
   (このコマンドプロンプトはこのまま残しておく)
6. 既に起動している tbzrcachew.exe を殺す。タスクトレイの右クリックで終了するか、
   タスクマネージャでプロセスを殺す。
7. 5の続きで、tbzrcacheを立ち上げる
     python scripts\tbzrcache.py
   Ctrl-Cで実行中のtbzrcacheを止めたら、そのうち通常のtbzrcacheが復帰する。 

追記: trunkにmergeした。上手くいけばbzr-2.0-betaに同梱される。

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。