Rather than juggling $GIT_DIR around the invocation of gitk, set it
(and $GIT_WORK_TREE) after finishing setup, ensuring that any external
tool works with the setup we're running with.
Signed-off-by: Giuseppe Bilotta <redacted>
---
git-gui/git-gui.sh | 15 +++------------
1 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index c5c787d..aff0644 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -1171,6 +1171,9 @@ if {[lindex $_reponame end] eq {.git}} {
set _reponame [lindex $_reponame end]
}
+set env(GIT_DIR) $_gitdir
+set env(GIT_WORK_TREE) $_gitworktree
+
######################################################################
##
## global init@@ -1986,25 +1989,13 @@ proc do_gitk {revs} {
} else {
global env
- if {[info exists env(GIT_DIR)]} {
- set old_GIT_DIR $env(GIT_DIR)
- } else {
- set old_GIT_DIR {}
- }
-
set pwd [pwd]
if { ![is_bare] } {
cd $_gitworktree
}
- set env(GIT_DIR) [file normalize [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--
1.6.6.rc1.295.g3a4e71