Don't trust git --version with nonzero exit status

This prevents parsing `zsh:1: command not found: git` as version "1:".

References: https://github.com/tpope/vim-fugitive/issues/1801
This commit is contained in:
Tim Pope
2021-07-29 08:27:44 -04:00
parent e9f913ff8a
commit dc579a0dfb

View File

@@ -321,7 +321,8 @@ let s:git_versions = {}
function! fugitive#GitVersion(...) abort
let git = s:GitShellCmd()
if !has_key(s:git_versions, git)
let s:git_versions[git] = matchstr(s:SystemError(s:GitCmd() + ['--version'])[0], '\d[^[:space:]]\+')
let [out, exec_error] = s:SystemError(s:GitCmd() + ['--version'])
let s:git_versions[git] = exec_error ? '' : matchstr(out, '\d[^[:space:]]\+')
endif
if !a:0
return s:git_versions[git]