かなり大きなリポジトリ(11 GB、900,000以上のファイル)があり、妥当な時間内に反復するのに問題があります。少しプロファイリングした後、本当のボトルネックはgitupdate-indexのようです。
$ time git update-index --replace $path > /dev/null
real 0m5.766s
user 0m1.984s
sys 0m0.391s
そのため、ファイルのリストを取得するのに耐えられない日数になります。update-index操作を高速化する方法はありますか?
その価値については、Windows7でcygwinを実行しています。
編集:質問により多くの文脈を置くため。
大規模なリポジトリはSVNインポートからのものであり、リポジトリに含めるべきではない多数のバイナリが含まれています。ただし、コミット履歴とコミットログを保持したい。そのために、バイナリの内容をファイルハッシュに置き換えようとしています。これにより、リポジトリが圧縮され、履歴を保持できるようになります。