GCommit doesn't work with fugitive.vim under windows xp?

穿精又带淫゛_ 提交于 2019-12-12 16:41:08

问题


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?


回答1:


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%



回答2:


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.



来源:https://stackoverflow.com/questions/2863038/gcommit-doesnt-work-with-fugitive-vim-under-windows-xp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!