summaryrefslogtreecommitdiff
path: root/git-gui.sh
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-10-03 04:17:19 (GMT)
committerShawn O. Pearce <spearce@spearce.org>2007-10-03 04:17:19 (GMT)
commite73bfa7709b108575e6ea73d6e97fc3efd967b38 (patch)
tree507b318fe2f1b74595541ee561c8976906d59b66 /git-gui.sh
parent0b2bc460fc69d2aa4f5af743b2b2317088e53949 (diff)
parent906ab7f6c03764423adef6c0e4d77442405adc23 (diff)
downloadgit-e73bfa7709b108575e6ea73d6e97fc3efd967b38.zip
git-e73bfa7709b108575e6ea73d6e97fc3efd967b38.tar.gz
git-e73bfa7709b108575e6ea73d6e97fc3efd967b38.tar.bz2
Merge branch 'maint'
* maint: git-gui: Don't crash when starting gitk from a browser session git-gui: Allow gitk to be started on Cygwin with native Tcl/Tk Conflicts: git-gui.sh
Diffstat (limited to 'git-gui.sh')
-rwxr-xr-xgit-gui.sh30
1 files changed, 28 insertions, 2 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 82f873b..3f5927f 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1243,11 +1243,17 @@ proc mapdesc {state path} {
}
proc ui_status {msg} {
- $::main_status show $msg
+ global main_status
+ if {[info exists main_status]} {
+ $main_status show $msg
+ }
}
proc ui_ready {{test {}}} {
- $::main_status show [mc "Ready."] $test
+ global main_status
+ if {[info exists main_status]} {
+ $main_status show [mc "Ready."] $test
+ }
}
proc escape_path {path} {
@@ -1577,7 +1583,27 @@ proc do_gitk {revs} {
if {! [file exists $exe]} {
error_popup [mc "Unable to start gitk:\n\n%s does not exist" $exe]
} else {
+ global env
+
+ if {[info exists env(GIT_DIR)]} {
+ set old_GIT_DIR $env(GIT_DIR)
+ } else {
+ set old_GIT_DIR {}
+ }
+
+ set pwd [pwd]
+ cd [file dirname [gitdir]]
+ set env(GIT_DIR) [file tail [gitdir]]
+
eval exec $cmd $revs &
+
+ if {$old_GIT_DIR eq {}} {
+ unset env(GIT_DIR)
+ } else {
+ set env(GIT_DIR) $old_GIT_DIR
+ }
+ cd $pwd
+
ui_status $::starting_gitk_msg
after 10000 {
ui_ready $starting_gitk_msg