Closed SolaWing closed 3 months ago
Short answer is you can opt out with:
let g:fugitive_file_api = v:false
This needs to be documented, but doing that means also documenting how this API works. 🥴
So my question is: can this performance be optimized to avoid getting the full tree?
See https://github.com/tpope/vim-fugitive/discussions/1866 and https://github.com/tpope/vim-fugitive/pull/1868.
I work on a large repo, and Found that show commit is very slow. I profile vim and found the time cost on
git ls-tree
, which take several seconds on each call, and is called byfugitive#filereadable
, and which is called from other plugin likevim-projectionist
,vim-bundler
,vim-rails
, . following is a profile on show commit from status window:fugitive-profile.log
As filereadable is a common action to call from anywhere, this problem makes fugitive respond slowly, seriously affecting the user experience.
So my question is: can this performance be optimized to avoid getting the full tree? Or I have to find a way to adjust the caller and not call readable in the fugitive-related buffer?