summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Markus Heidelberg <markus.heidelberg@web.de>2009-11-04 00:21:41 +0100
committerLibravatar Paul Mackerras <paulus@samba.org>2009-11-14 21:19:12 +1100
commita4390ace1a871d786b33456d6e80728bd2ab3b61 (patch)
tree251e0ec1959e661af168b913b3e7222fe620334f
parentgitk: Disable checkout of remote branches (diff)
downloadtgif-a4390ace1a871d786b33456d6e80728bd2ab3b61.tar.xz
gitk: Fix "git gui blame" invocation when called from top-level directory
When run in the top-level directory of a git repository, "git rev-parse --git-dir" doesn't return an absolute path, but merely ".git", so the selected file for "git gui blame" has a relative path. The function make_relative then tries to make the already relative path relative, which results in a path like "../../../../Makefile" with as many ".." as there are elements of [pwd]. This regression was introduced by commit 9712b81 (gitk: Fix bugs in blaming code, 2008-12-06), which fixed "git gui blame" when called from subdirs. This also fixes it for bare repositories. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-xgitk3
1 files changed, 3 insertions, 0 deletions
diff --git a/gitk b/gitk
index 5f06545763..d5f0a88d78 100755
--- a/gitk
+++ b/gitk
@@ -3378,6 +3378,9 @@ proc index_sha1 {fname} {
# Turn an absolute path into one relative to the current directory
proc make_relative {f} {
+ if {[file pathtype $f] eq "relative"} {
+ return $f
+ }
set elts [file split $f]
set here [file split [pwd]]
set ei 0