diff --git a/autoload/gitgutter.vim b/autoload/gitgutter.vim index 69849a3..d56a8d9 100644 --- a/autoload/gitgutter.vim +++ b/autoload/gitgutter.vim @@ -33,8 +33,6 @@ function! gitgutter#process_buffer(bufnr, force) abort return endif - call gitgutter#utility#set_diff_base_if_fugitive(a:bufnr) - if a:force || s:has_fresh_changes(a:bufnr) let diff = 'NOT SET' diff --git a/autoload/gitgutter/diff.vim b/autoload/gitgutter/diff.vim index db827f5..6eebc09 100644 --- a/autoload/gitgutter/diff.vim +++ b/autoload/gitgutter/diff.vim @@ -120,7 +120,7 @@ function! gitgutter#diff#run_diff(bufnr, from, preserve_full_diff) abort endif " Write file from index to temporary file. - let index_name = g:gitgutter_diff_base.':'.gitgutter#utility#repo_path(a:bufnr, 1) + let index_name = gitgutter#utility#get_diff_base(a:bufnr).':'.gitgutter#utility#repo_path(a:bufnr, 1) let cmd .= g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager show '.index_name.' > '.from_file.' && ' elseif a:from ==# 'working_tree' diff --git a/autoload/gitgutter/utility.vim b/autoload/gitgutter/utility.vim index f642c2b..4151aea 100644 --- a/autoload/gitgutter/utility.vim +++ b/autoload/gitgutter/utility.vim @@ -184,12 +184,13 @@ function! s:restore_shell() abort endif endfunction -function! gitgutter#utility#set_diff_base_if_fugitive(bufnr) +function! gitgutter#utility#get_diff_base(bufnr) let p = resolve(expand('#'.a:bufnr.':p')) let ml = matchlist(p, '\v^fugitive:/.*/(\x{40,})/') if !empty(ml) && !empty(ml[1]) - let g:gitgutter_diff_base = ml[1].'^' + return ml[1].'^' endif + return g:gitgutter_diff_base endfunction function! s:abs_path(bufnr, shellesc)