Skip to contentSkip to conversation

gitk : Lines not showing up in diff

PATCH In review Jacob Kroon 3 participants 3 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

PATCH 1/1 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.

---

 gitk |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

d0da9f04cf565df64a954e1bfd4c5c0913b83322

gitk +4 -2
index f4c6624..5e3c34c 100755
@@ -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

#2 lore raw

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

Quoted 5 lines · Robert Fitzsimons

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.