Code

gitk: Do not pick up file names of "copy from" lines
authorJohannes Sixt <johannes.sixt@telecom.at>
Tue, 2 Oct 2007 14:16:54 +0000 (16:16 +0200)
committerShawn O. Pearce <spearce@spearce.org>
Sat, 20 Oct 2007 03:09:27 +0000 (23:09 -0400)
A file copy would be detected only if the original file was modified in the
same commit. This implies that there will be a patch listed under the
original file name, and we would expect that clicking the original file
name in the file list warps the patch window to that file's patch. (If the
original file was not modified, the copy would not be detected in the first
place, the copied file would be listed as "new file", and this whole matter
would not apply.)

However, if the name of the copy is sorted after the original file's patch,
then the logic introduced by commit d1cb298b0b (which picks up the link
information from the "copy from" line) would overwrite the link
information that is already present for the original file name, which was
parsed earlier. Hence, this patch reverts part of said commit.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
gitk

diff --git a/gitk b/gitk
index 46673e3b9c48439c6213b9ba56730748999e03b2..516e14a8fc25a5688bd6b2f5d8defe0075681f34 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -5221,8 +5221,7 @@ proc getblobdiffline {bdf ids} {
            set diffinhdr 0
 
        } elseif {$diffinhdr} {
-           if {![string compare -length 12 "rename from " $line] ||
-               ![string compare -length 10 "copy from " $line]} {
+           if {![string compare -length 12 "rename from " $line]} {
                set fname [string range $line [expr 6 + [string first " from " $line] ] end]
                if {[string index $fname 0] eq "\""} {
                    set fname [lindex $fname 0]