I've just discovered fugitive.vim, which is pretty cool. However, I've run into a problem (this is using windows xp, msys git 1.7, fugitive.vim 1.1, and gvim 7.2). Adding files to the index and checking the status works just fine, but when I do a :GCommit
, a command prompt flashes for a second and nothing happens. No way to type a commit message and nothing is committed. Is this a bug? Am I doing something wrong?
It looks like issue 428 of msysgit.
(From issue 467)
Reported by michaelrgeddes, Apr 07, 2010
What steps will reproduce the problem?
From cmd shell
set GIT_EDITOR=false
set ERRORLEVEL=
git commit
if errorlevel 1 echo Has an error %ERRORLEVEL%
Expect to see "Has an error 1" but don't.
git version 1.7.0.2.msysgit.0 running on Vista.
Important since it causes
:Gcommit
failure in 'fugitive' vim integration.
Solution: patch the cmd/git.cmd
script of your current msysgit installation.
cmd/git.cmd | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/cmd/git.cmd b/cmd/git.cmd
index 048f615..8cd4397 100644
--- a/cmd/git.cmd
+++ b/cmd/git.cmd
@@ -19,13 +19,15 @@
@rem Set the console codepage to match the GUI codepage.
@chcp %cp_ansi% > nul
@git.exe %*
+@set ErrorLevel=%ErrorLevel%
@rem Restore the original console codepage.
@chcp %cp_oem% > nul
@goto quit
:gui
@if "%2"=="citool" @goto default
-@start wish.exe "%git_install_root%\libexec\git-core\git-gui" -- %2 %3 %4 %5 %6 %7 %8 %9
+@for /f "tokens=1-1*" %%a in ("%*") do @set args=%%b
+@start "git-gui" wish.exe "%git_install_root%\libexec\git-core\git-gui" -- %args%
:quit
-@%COMSPEC% /c exit /b %ErrorLevel%
+@"%COMSPEC%" /c exit /b %ErrorLevel%
Here is an possible situation that can cause the problem, which I experienced. I list it here in case it can help any one else that met with the same issue.
It happened that after I installed git (downloaed from http://git-scm.com/), I didn't set the git global config user.email. After I setup that via command line, Gcommit works. So if some one met with the same issue, please make sure that you can commit from command line, and then try Gcommit.
© 2022 - 2024 — McMap. All rights reserved.