summaryrefslogtreecommitdiff
path: root/git-gui/windows/git-gui.sh
diff options
context:
space:
mode:
Diffstat (limited to 'git-gui/windows/git-gui.sh')
-rw-r--r--git-gui/windows/git-gui.sh19
1 files changed, 14 insertions, 5 deletions
diff --git a/git-gui/windows/git-gui.sh b/git-gui/windows/git-gui.sh
index 98f32c0a07..b1845c5055 100644
--- a/git-gui/windows/git-gui.sh
+++ b/git-gui/windows/git-gui.sh
@@ -3,14 +3,23 @@
exec wish "$0" -- "$@"
if { $argc >=2 && [lindex $argv 0] == "--working-dir" } {
- cd [lindex $argv 1]
+ set workdir [lindex $argv 1]
+ cd $workdir
+ if {[lindex [file split $workdir] end] eq {.git}} {
+ # Workaround for Explorer right click "Git GUI Here" on .git/
+ cd ..
+ }
set argv [lrange $argv 2 end]
incr argc -2
}
-set gitguidir [file dirname [info script]]
-regsub -all ";" $gitguidir "\\;" gitguidir
-set env(PATH) "$gitguidir;$env(PATH)"
-unset gitguidir
+set basedir [file dirname \
+ [file dirname \
+ [file dirname [info script]]]]
+set bindir [file join $basedir bin]
+set bindir "$bindir;[file join $basedir mingw bin]"
+regsub -all ";" $bindir "\\;" bindir
+set env(PATH) "$bindir;$env(PATH)"
+unset bindir
source [file join [file dirname [info script]] git-gui.tcl]