Windowsでmsysgit(Git Bash)を使っていてサイズの大きいリポジトリ(数GBとか)を使用していると
$ git status
$ git pull/fetch
などにすごく時間がかかる、ということがあります。
いろいろ調べて、ある程度は改善できたので、メモ。
preloadindex 設定
こちらを元に
preloadindex
$ git config --global core.preloadindex true
を設定すると、少し早くなりました。このオプションを指定すると、ファイル、インデックスの比較を並列実行してくれるようです。
2018-11-13追記
Git 2.1.0からこの設定はデフォルトでtrue
になったようです。
2.1.0.txt\RelNotes\Documentation - git.git - The core git plumbing
fscache設定
こちらを元に
$ git config --global core.fscache true
を設定すると、数十秒かかっていた git status
が2~3秒くらいになりました
2018-11-13追記
Git for Windows 2.8ではこの設定はデフォルトで有効になったようです。
他の方法でインストールした場合は未だ必要かもしれません。
参考
- http://stackoverflow.com/questions/4994772/ways-to-improve-git-status-performance
- http://stackoverflow.com/questions/3055506/git-is-very-very-slow
- http://stackoverflow.com/questions/3313908/git-is-really-slow-for-100-000-objects-any-fixes
- http://stackoverflow.com/questions/1183769/git-status-takes-a-long-time-to-complete
- http://stackoverflow.com/questions/3313908/git-is-really-slow-for-100-000-objects-any-fixes
- http://sourceforge.jp/magazine/09/03/16/0831212/2
- http://weble.org/2012/05/16/git-is-really-slow
- http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/chunked/ch07.html
- http://techracho.bpsinc.jp/baba/2012_05_22/5594
- http://qiita.com/akihiroy/items/42ff4cd12cb8670920e7
- https://gist.github.com/emanuelez/1758346
-
http://comments.gmane.org/gmane.comp.version-control.git/189776
.