From dc579a0dfbfacbfee865b1486f5717a286a92fcb Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Thu, 29 Jul 2021 08:27:44 -0400 Subject: [PATCH] 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 --- autoload/fugitive.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim index 513c6c3..a7964f1 100644 --- a/autoload/fugitive.vim +++ b/autoload/fugitive.vim @@ -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]