mirror of
https://github.com/tpope/vim-fugitive.git
synced 2025-11-15 06:43:51 -05:00
Standardize on 'git_dir' as dictionary key
We've been moving this way for a while, but progress is slow, so let's help it along a bit.
This commit is contained in:
@@ -388,7 +388,7 @@ function! s:UserCommandList(...) abort
|
||||
if a:0 && type(a:1) == type({})
|
||||
let git = copy(get(a:1, 'git', git))
|
||||
let flags = get(a:1, 'flags', flags)
|
||||
let dir = a:1.dir
|
||||
let dir = a:1.git_dir
|
||||
elseif a:0
|
||||
let dir = a:1
|
||||
else
|
||||
@@ -551,11 +551,10 @@ function! fugitive#PrepareDirEnvGitFlagsArgs(...) abort
|
||||
let arg_count = 0
|
||||
while i < len(cmd)
|
||||
if type(cmd[i]) == type({})
|
||||
if has_key(cmd[i], 'dir')
|
||||
let dir = cmd[i].dir
|
||||
endif
|
||||
if has_key(cmd[i], 'git_dir')
|
||||
let dir = cmd[i].git_dir
|
||||
elseif has_key(cmd[i], 'dir')
|
||||
let dir = cmd[i].dir
|
||||
endif
|
||||
if has_key(cmd[i], 'git')
|
||||
let git = cmd[i].git
|
||||
@@ -2819,8 +2818,8 @@ function! s:TempReadPre(file) abort
|
||||
endif
|
||||
setlocal buftype=nowrite
|
||||
setlocal nomodifiable
|
||||
let b:git_dir = dict.dir
|
||||
if len(dict.dir)
|
||||
let b:git_dir = dict.git_dir
|
||||
if len(dict.git_dir)
|
||||
call extend(b:, {'fugitive_type': 'temp'}, 'keep')
|
||||
endif
|
||||
endif
|
||||
@@ -2912,7 +2911,7 @@ function! s:RunEdit(state, tmp, job) abort
|
||||
exe substitute(a:state.mods, '\<tab\>', '-tab', 'g') 'keepalt split' s:fnameescape(file)
|
||||
set bufhidden=wipe
|
||||
let s:edit_jobs[bufnr('')] = [a:state, a:tmp, a:job, sentinel]
|
||||
call fugitive#ReloadStatus(a:state.dir, 1)
|
||||
call fugitive#ReloadStatus(a:state.git_dir, 1)
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
@@ -3374,7 +3373,7 @@ function! fugitive#Command(line1, line2, range, bang, mods, arg) abort
|
||||
\ 'GIT_PAGER': 'cat',
|
||||
\ 'PAGER': 'cat'}, 'keep')
|
||||
let args = s:disable_colors + flags + ['-c', 'advice.waitingForEditor=false'] + args
|
||||
let argv = s:UserCommandList({'git': git, 'dir': dir}) + args
|
||||
let argv = s:UserCommandList({'git': git, 'git_dir': dir}) + args
|
||||
let [argv, jobopts] = s:JobOpts(argv, env)
|
||||
call fugitive#Autowrite()
|
||||
call writefile([], state.file, 'b')
|
||||
@@ -3411,7 +3410,7 @@ function! fugitive#Command(line1, line2, range, bang, mods, arg) abort
|
||||
let guioptions = &guioptions
|
||||
set guioptions-=!
|
||||
endif
|
||||
silent! execute '!' . escape(pre . s:UserCommand({'git': git, 'dir': dir}, s:disable_colors + flags + ['--no-pager'] + args), '!#%') .
|
||||
silent! execute '!' . escape(pre . s:shellesc(s:UserCommandList(options) + s:disable_colors + flags + ['--no-pager'] + args), '!#%') .
|
||||
\ (&shell =~# 'csh' ? ' >& ' . s:shellesc(state.file) : ' > ' . s:shellesc(state.file) . ' 2>&1')
|
||||
let state.exit_status = v:shell_error
|
||||
finally
|
||||
@@ -3433,7 +3432,7 @@ function! fugitive#Command(line1, line2, range, bang, mods, arg) abort
|
||||
return 'echoerr ' . string('fugitive: Vim 8 with job support required to use :Git in GVim')
|
||||
else
|
||||
let pre = s:BuildEnvPrefix(env)
|
||||
return 'exe ' . string('noautocmd !' . escape(pre . s:UserCommand(options, args), '!#%')) .
|
||||
return 'exe ' . string('noautocmd !' . escape(pre . s:shellesc(s:UserCommandList(options) + args), '!#%')) .
|
||||
\ '|call fugitive#ReloadStatus(' . string(dir) . ', 1)' .
|
||||
\ after
|
||||
endif
|
||||
@@ -4718,7 +4717,7 @@ endfunction
|
||||
" Section: :Git commit, :Git revert
|
||||
|
||||
function! s:CommitInteractive(line1, line2, range, bang, mods, options, patch) abort
|
||||
let status = s:StatusCommand(a:line1, a:line2, a:range, a:line2, a:bang, a:mods, '', '', [], a:options.dir)
|
||||
let status = s:StatusCommand(a:line1, a:line2, a:range, a:line2, a:bang, a:mods, '', '', [], a:options.git_dir)
|
||||
let status = len(status) ? status . '|' : ''
|
||||
if a:patch
|
||||
return status . 'if search("^Unstaged")|exe "normal >"|exe "+"|endif'
|
||||
@@ -4788,11 +4787,10 @@ function! fugitive#PullComplete(A, L, P, ...) abort
|
||||
endfunction
|
||||
|
||||
function! s:MergeSubcommand(line1, line2, range, bang, mods, options) abort
|
||||
let dir = a:options.dir
|
||||
if empty(a:options.subcommand_args) && (
|
||||
\ filereadable(fugitive#Find('.git/MERGE_MSG', dir)) ||
|
||||
\ isdirectory(fugitive#Find('.git/rebase-apply', dir)) ||
|
||||
\ !empty(s:TreeChomp(dir, 'diff-files', '--diff-filter=U')))
|
||||
\ !empty(s:TreeChomp([a:options.git_dir, 'diff-files', '--diff-filter=U'])))
|
||||
return 'echoerr ":Git merge for loading conflicts hase been removed in favor of :Git mergetool"'
|
||||
endif
|
||||
return {}
|
||||
@@ -4923,7 +4921,7 @@ function! s:ToolStream(line1, line2, range, bang, mods, options, args, state) ab
|
||||
let a:state.mode = 'init'
|
||||
let a:state.from = ''
|
||||
let a:state.to = ''
|
||||
let exec = s:UserCommandList({'git': a:options.git, 'dir': a:options.dir}) + ['-c', 'diff.context=0']
|
||||
let exec = s:UserCommandList({'git': a:options.git, 'git_dir': a:options.git_dir}) + ['-c', 'diff.context=0']
|
||||
let exec += a:options.flags + ['--no-pager', 'diff', '--no-ext-diff', '--no-color', '--no-prefix'] + argv
|
||||
if prompt
|
||||
let title = ':Git ' . s:fnameescape(a:options.flags + [a:options.subcommand] + a:options.subcommand_args)
|
||||
@@ -4949,7 +4947,7 @@ function! s:ToolStream(line1, line2, range, bang, mods, options, args, state) ab
|
||||
endfunction
|
||||
|
||||
function! s:MergetoolSubcommand(line1, line2, range, bang, mods, options) abort
|
||||
let dir = a:options.dir
|
||||
let dir = a:options.git_dir
|
||||
exe s:DirCheck(dir)
|
||||
let i = 0
|
||||
let prompt = 1
|
||||
@@ -4961,7 +4959,7 @@ function! s:MergetoolSubcommand(line1, line2, range, bang, mods, options) abort
|
||||
endfunction
|
||||
|
||||
function! s:DifftoolSubcommand(line1, line2, range, bang, mods, options) abort
|
||||
let dir = a:options.dir
|
||||
let dir = a:options.git_dir
|
||||
exe s:DirCheck(dir)
|
||||
let i = 0
|
||||
let argv = copy(a:options.subcommand_args)
|
||||
@@ -6133,7 +6131,7 @@ function! s:BlameCommitFileLnum(...) abort
|
||||
if commit =~# '^0\+$'
|
||||
let commit = ''
|
||||
elseif has_key(state, 'blame_reverse_end')
|
||||
let commit = get(s:LinesError([state.dir, 'rev-list', '--ancestry-path', '--reverse', commit . '..' . state.blame_reverse_end])[0], 0, '')
|
||||
let commit = get(s:LinesError([state.git_dir, 'rev-list', '--ancestry-path', '--reverse', commit . '..' . state.blame_reverse_end])[0], 0, '')
|
||||
endif
|
||||
let lnum = +matchstr(line, ' \zs\d\+\ze \%((\| *\d\+)\)')
|
||||
let path = matchstr(line, '^\^\=[?*]*\x* \+\%(\d\+ \+\d\+ \+\)\=\zs.\{-\}\ze\s*\d\+ \%((\| *\d\+)\)')
|
||||
@@ -6261,7 +6259,7 @@ function! s:BlameSubcommand(line1, count, range, bang, mods, options) abort
|
||||
silent execute 'noautocmd keepalt %write ' . s:fnameescape(tempname . '.in')
|
||||
let delete_in = 1
|
||||
endif
|
||||
let basecmd = [{'git': a:options.git, 'dir': dir}] + ['--literal-pathspecs'] + cmd + ['--'] + (len(files) ? files : [file])
|
||||
let basecmd = [{'git': a:options.git, 'git_dir': dir}] + ['--literal-pathspecs'] + cmd + ['--'] + (len(files) ? files : [file])
|
||||
let [err, exec_error] = s:StdoutToFile(temp, basecmd)
|
||||
if exists('delete_in')
|
||||
call delete(tempname . '.in')
|
||||
|
||||
Reference in New Issue
Block a user