From 73b6a6cbda9cd568e2544f2c7dd6c217e369cc37 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 28 Jul 2005 00:28:44 -0700 Subject: [PATCH] [PATCH] gitk: Use GIT_DIR where appropriate. Some places assumed .git is the GIT_DIR, resulting heads and tags not showing when it was run like "GIT_DIR=. gitk --all". This is not a contrived example --- I rely on it to verify my private copy of git.git repository before pushing it out. Define a single procedure "gitdir" and use it. Signed-off-by: Junio C Hamano Signed-off-by: Paul Mackerras --- gitk | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/gitk b/gitk index 96600b60d6..dd8f1f1494 100755 --- a/gitk +++ b/gitk @@ -7,17 +7,22 @@ exec wish "$0" -- "${1+$@}" # and distributed under the terms of the GNU General Public Licence, # either version 2, or (at your option) any later version. +proc gitdir {} { + global env + if {[info exists env(GIT_DIR)]} { + return $env(GIT_DIR) + } else { + return ".git" + } +} + proc getcommits {rargs} { global commits commfd phase canv mainfont env global startmsecs nextupdate global ctext maincursor textcursor leftover # check that we can find a .git directory somewhere... - if {[info exists env(GIT_DIR)]} { - set gitdir $env(GIT_DIR) - } else { - set gitdir ".git" - } + set gitdir [gitdir] if {![file isdirectory $gitdir]} { error_popup "Cannot find the git directory \"$gitdir\"." exit 1 @@ -212,7 +217,7 @@ proc parsecommit {id contents listed} { proc readrefs {} { global tagids idtags headids idheads - set tags [glob -nocomplain -types f .git/refs/tags/*] + set tags [glob -nocomplain -types f [gitdir]/refs/tags/*] foreach f $tags { catch { set fd [open $f r] @@ -241,7 +246,7 @@ proc readrefs {} { close $fd } } - set heads [glob -nocomplain -types f .git/refs/heads/*] + set heads [glob -nocomplain -types f [gitdir]/refs/heads/*] foreach f $heads { catch { set fd [open $f r] @@ -2752,10 +2757,7 @@ proc domktag {} { return } if {[catch { - set dir ".git" - if {[info exists env(GIT_DIR)]} { - set dir $env(GIT_DIR) - } + set dir [gitdir] set fname [file join $dir "refs/tags" $tag] set f [open $fname w] puts $f $id