Code

On Windows, avoid git-gui to call Cygwin's nice utility
authorSebastian Schuberth <sschuberth@gmail.com>
Tue, 5 Oct 2010 09:12:00 +0000 (11:12 +0200)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Tue, 5 Oct 2010 09:58:14 +0000 (10:58 +0100)
It's a common case for Windows developers to have both Cygwin and msysGit
installed. Unfortunately, some scenarios also require to have Cygwin in PATH.
By default, Cygwin comes with nice.exe, while msysGit does not. Since git-gui
calls nice if it is in PATH, this results in Cygwin's nice.exe being called
from msysGit's git-gui. Mixing Cygwin and msysGit generally is not a good idea,
and in this particular case it causes differences not being correctly detected.
So we only call nice.exe on Windows if it is in the same directory as git.exe.
This way, this work-around does neither affect a pure Cygwin environment, or
the case when nice.exe will be shipped with msysGit at some point in time.

This fixes msysGit issue 394.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
git-gui.sh

index 4617f29c26726c2cd438f160be21a8422e66b352..422d4ff5bd9157d64dce272608203f91d6765854 100755 (executable)
@@ -444,6 +444,8 @@ proc _lappend_nice {cmd_var} {
                set _nice [_which nice]
                if {[catch {exec $_nice git version}]} {
                        set _nice {}
                set _nice [_which nice]
                if {[catch {exec $_nice git version}]} {
                        set _nice {}
+               } elseif {[is_Windows] && [file dirname $_nice] ne [file dirname $::_git]} {
+                       set _nice {}
                }
        }
        if {$_nice ne {}} {
                }
        }
        if {$_nice ne {}} {