threads / discuss / 3593

gitk : Lines not showing up in diff

Subject: gitk : Lines not showing up in diff

## tl;dr

3 messages between Mar 7, 2006 and Mar 7, 2006.

replies: 2people: 3as markdown or json

Jacob Kroon· Mar 7, 2006, 19:43 UTC · lore
I "think" this is a bug in gitk:

If I have a textfile in which I remove or add a line that looks like "-----------...", it won't show up in the diff gitk produces. "cg-log" shows the line correctly being added or deleted.

I'm using gitk 1.2.4 (From Fedora, gitk-1.2.4-1.fc4)
//Jacob
Robert Fitzsimons· Mar 7, 2006, 20:46 UTC · re: Jacob Kroon · lore

[PATCH] gitk : fix missing lines when displaying diff.

Lines which are added (removed) and begin with +++ (---) are not shown correctly when displaying in the diff panel.

The +++ and --- lines are part of the diff header, with the +++ indicating the end of the header.

Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
---
 gitk |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
d0da9f04cf565df64a954e1bfd4c5c0913b83322
diff --git a/gitk b/gitk
index f4c6624..5e3c34c 100755
--- a/gitk
+++ b/gitk
@@ -2595,8 +2595,10 @@ proc getblobdiffline {bdf ids} {
        set pad [string range "----------------------------------------" 1 $l]
        $ctext insert end "$pad $header $pad\n" filesep
        set diffinhdr 1
-    } elseif {[regexp {^(---|\+\+\+)} $line]} {
-       set diffinhdr 0
+    } elseif {$diffinhdr == 1 && [regexp {^(---|\+\+\+) } $line]} {
+       if {[regexp {^\+\+\+ } $line]} {
+           set diffinhdr 0
+       }
     } elseif {[regexp {^@@ -([0-9]+),([0-9]+) \+([0-9]+),([0-9]+) @@(.*)} \
                   $line match f1l f1c f2l f2c rest]} {
        $ctext insert end "$line\n" hunksep
--
1.2.3.g20d2
Paul Mackerras· Mar 7, 2006, 22:17 UTC · re: Robert Fitzsimons · lore

Re: [PATCH] gitk : fix missing lines when displaying diff.

Robert Fitzsimons writes:
Show 5 quoted lines
> Lines which are added (removed) and begin with +++ (---) are not shown
> correctly when displaying in the diff panel.
> 
> The +++ and --- lines are part of the diff header, with the +++
> indicating the end of the header.

Thanks for pointing out the easy fix. I had been going to do something much more complicated. :)

However, your patch didn't apply due to the whitespace being munged. I committed an equivalent fix, but I took the opportunity to change the [regexp] to a couple of [string compare]s as well.

Paul.

← back to recent threads