TortoiseBzr高速化のためのメモ

ほぼ自分用メモ

TortoiseBzrのアイコンオーバーレイは、内部でbzr statusと同じ処理が実行されているわけだけれども、これがあまり速くない。

この処理でやってることは主に2つで、

  1. .bzr/checkout配下のdirstateやconflictsファイルを読み込んで、各ファイルのバージョン管理状態を確認する。
  2. 作業コピー内の各ファイルの更新時刻を取得して、dirstate内に記録された更新時刻と比較することによって変更されているかどうかをチェックする。必要に応じてファイルのsha1も取得する。

dirstateなんかは、数万ファイルの作業コピーであってもたかだか数MBのファイルなので読み込みは一瞬で終わる。かかっている時間の99%は2の方の処理。

でも、TortoiseBzrは作業コピー内のファイルの更新を監視してるので、本当は2の処理なんて起動後1回だけ実行すればあとはもう必要ない。その辺を踏まえて再実装すればアイコンオーバーレイが劇的に高速化するはず。

なんだけど、誰かやってくんないかなー。