diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-10-03 00:17:19 -0400 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2007-10-03 00:17:19 -0400 |
commit | e73bfa7709b108575e6ea73d6e97fc3efd967b38 (patch) | |
tree | 507b318fe2f1b74595541ee561c8976906d59b66 | |
parent | 0b2bc460fc69d2aa4f5af743b2b2317088e53949 (diff) | |
parent | 906ab7f6c03764423adef6c0e4d77442405adc23 (diff) | |
download | git-e73bfa7709b108575e6ea73d6e97fc3efd967b38.tar.gz |
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
-rwxr-xr-x | git-gui.sh | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/git-gui.sh b/git-gui.sh index 82f873bdcd..3f5927fb29 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 |