gitk: Fix "show origin of this line" with separate work tree
authorMartin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Tue, 5 Apr 2011 02:14:13 +0000 (22:14 -0400)
committerPaul Mackerras <paulus@samba.org>
Sun, 24 Jul 2011 05:34:54 +0000 (15:34 +1000)
Running "show origin of this line" currently fails when the the work
tree is not the parent of the git directory.  Fix it by feeding
git-blame paths relative to $GIT_WORK_TREE instead of "$GIT_DIR/..".

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk

diff --git a/gitk b/gitk
index a1aec6202fcf3d0c064f39f676c0de040ca33d58..4c99dd601a326e2a2cf595348ffd5fb6182de425 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -3589,7 +3589,7 @@ proc external_blame {parent_idx {line {}}} {
 proc show_line_source {} {
     global cmitmode currentid parents curview blamestuff blameinst
     global diff_menu_line diff_menu_filebase flist_menu_file
-    global nullid nullid2 gitdir
+    global nullid nullid2 gitdir cdup
 
     set from_index {}
     if {$cmitmode eq "tree"} {
@@ -3642,7 +3642,7 @@ proc show_line_source {} {
     } else {
        lappend blameargs $id
     }
-    lappend blameargs -- [file join [file dirname $gitdir] $flist_menu_file]
+    lappend blameargs -- [file join $cdup $flist_menu_file]
     if {[catch {
        set f [open $blameargs r]
     } err]} {