Subject: [StGIT] Not working on Windows with msysgit.

From: Jurko Gospodnetić <[email-masked]>
Date: Mon, 28 Jul 2008 19:29:49 +0200

Hi.

   I believe StGIT fails to work on Windows with msysgit installed 
because of the way it runs its external executables. It assumes that the 
executable is available on the path and is named exactly 'git'.

   This however is not the case on Windows with msysgit installed. There 
the 'git executable' is a batch script named git.cmd and stgit fails to 
find it causing all git calls to return an error code.

   Popen() calls in StGIT's run.py module seem to run their executables 
(git & gitk only as far as I saw from the sources) directly instead of 
running them through the shell in order to have the shell try all the 
default extensions (configured on Windows using the PATHEXT environment 
variable).

   One 'fix' that corrects this in all the use cases on Windows that I 
tried is to add the shell=True parameter to all Popen() calls in StGIT's 
run.py module (one in __run_io() and one in __run_noio()). This would 
however require more testing as I do not know how this would affect 
other OSs or whether there might be some problems with how Windows's 
default cmd shell handles quoting in the executed command lines. I do 
recall Python having some serious problems with these quoting in 
executed commands... something about external quotes getting stripped in 
some cases... I might be able to dig up a workaround from somewhere if 
needed...

   I'm using Windows XP SP3 and my git/StGIT/Python version information is:
> Stacked GIT 0.14.3
> git version 1.5.6.1.1071.g76fb
> Python version 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]

   Anyone using StGIT on Windows with sysgit?

   The place where I originally detected this problem is that StGIT 
fails to read the stgit.editor configuration option with 
Windows/msysgit. I think it got so far though only because I also had 
cygwin git a bit later on the path.

   Best regards,
     Jurko Gospodnetić