hirakiucの日記

いろいろ

「ghq list」に時間がかかってた問題

ghq listが遅くなる問題に遭遇して解決できたのでメモ。

TL;DR;

GHQ_ROOT/の下に、サンプル用コードを配置するときは、必ず.gitなどでバージョンコントロールすること。

理由

ghq/local_repository.go at master · motemen/ghq · GitHub

ここを見る感じ、「.git, .svn, .hg, _darcsといったディレクトリがある場所を探索して、そこからlocal repositoryだったら、そこから下をskipする」挙動になってます。

そのため、GHQ_ROOTの下にバージョンコントロールされてないサンプルプロジェクトがあると、 その中の.bundlenode_modules再帰的に辿っていく動作になる。

結果的に、たどる必要がないパスを延々と辿ることで、不要なパスをskipせずに、ghq listの実行時間が長くなるという状況だった。


自分でghq listの代替を作ってたけど、やっぱりと思って調べてみて、なんとか改善できたので良かった。