Re: [PATCH] On Windows, avoid git-gui to call Cygwin's nice utility
From: Pat Thoyts <hidden>
Date: 2016-06-15 22:49:42
Sebastian Schuberth [off-list ref] writes:
quoted hunk
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 <redacted> --- git-gui/git-gui.sh | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index 3c9a8aa..288ec87 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh@@ -444,6 +444,8 @@ proc _lappend_nice {cmd_var} {set _nice [_which nice] if {[catch {exec $_nice git version}]} { set _nice {} + } elseif {[is_Windows] && [file dirname $_nice] != [file dirname $::_git]} { + set _nice {} } } if {$_nice ne {}} {
I just tested this out and its fine. It's marginally better to use 'ne' rather than '!=' as the comparison operator here as this is a string comparison and we don't support tcl older than 8.4 when 'eq/ne' was introduced. I've applied it to git-gui's repository with 'ne'. -- Pat Thoyts http://www.patthoyts.tk/ PGP fingerprint 2C 6E 98 07 2C 59 C8 97 10 CE 11 E6 04 E0 B9 DD