Bug 75794

Summary: kompare tries to find too little differences
Product: [Applications] kompare Reporter: Gioele Barabucci <dev>
Component: parserAssignee: Kompare developers <kompare-devel>
Severity: wishlist CC: esigra
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: screenshot of the bug
patch that marks whol destination string if levenshtein distances is greater than the longer of both strings

Description Gioele Barabucci 2004-02-21 21:27:16 UTC
Version:           3.2.90 (using KDE 3.2.0, Gentoo)
Compiler:          gcc version 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r4, propolice)
OS:          Linux (ppc) release 2.4.24-ben1

intra-diff highligting is nice, but often unreadable: kompare tryes too hard to find a difference so it ends with wrong highligting.
Comment 1 Gioele Barabucci 2004-02-21 21:29:47 UTC
Created attachment 4826 [details]
screenshot of the bug
Comment 2 Otto Bruggeman 2004-02-23 19:07:21 UTC
Ok, i know it is not perfect but how do you want it to be shown then ?
Comment 3 Otto Bruggeman 2004-02-24 11:24:51 UTC
Oh and for the record the highlighting is not wrong, this is the minimal change between the 2 strings :) Not much i can do about it honestly expect rewrite the algorithm entirely which i am not very interested in.
Comment 4 Gioele Barabucci 2004-02-24 11:31:59 UTC
Yes, I mean "minimal change" :)

I know this is not of primary importance, but still I'd like to see it working better.
I changed the severity to wishlist, can you please rename this bug ("Summary" field) to something more meaningful (my english is too bad to find something better) and leave open, maybe in the future someone will solve this issue ;)
Comment 5 Otto Bruggeman 2004-03-03 20:24:01 UTC
One thing i can do (hopefully before 3.3) is that if there are a lot of small changes with only less than y chars unchanged in between to group them into one change. Or just mark the whole string as changed (make bold) if more than x number of changes occur between 2 sentences. I could make this configurable but i dont knwo if i have enough time for that.
Comment 6 Jeff Snyder 2005-06-06 21:45:44 UTC
This is gonna be a little spammy... I'm reassigning everything that's currently 
assigned to bruggie (who's been the default assignee for bugs since time began) 
to the new list address. 
Bruggie: if you're working on one or more of these atm, please snatch 'em 
Everyone, esp. Joshua and Bruggie: if this genrates 33 mails, my sincere 
Comment 7 Felix Berger 2005-11-19 20:52:12 UTC
Created attachment 13560 [details]
patch that marks whol destination string if levenshtein distances is greater than the longer of both strings
Comment 8 Jeff Snyder 2005-11-22 23:32:03 UTC
Hi Felix,

Thanks for taking a look at this.. I'm not familiar with the levenshtein code  myself, but I'm guessing that your patch is intended to provide some sort of threshold at which the differences are considered too fine-grained to display.

I'll compile this and have a play with it soon, hopefully tomorrow.

Comment 9 Otto Bruggeman 2009-02-12 22:28:28 UTC
SVN commit 925266 by bruggie:

BUG: 75794 Heuristic added to only show inline differences if the number of differences is less than half the length of the longest line
BUG: 89781 Fixes differences at the beginning of the line. Silly oversight from my sight, both variables x and y do not have to be 0 at the same time when leaving the loop

 M  +53 -17    levenshteintable.cpp  

WebSVN link: http://websvn.kde.org/?view=rev&revision=925266
Comment 10 Kevin Kofler 2009-02-19 01:17:49 UTC
SVN commit 928150 by kkofler:

Mass backport of Kompare bugfixes for KDE 4.2.1 (should not touch any translatable strings): backport revisions 913308, 913309, 922431 (Kompare only), 924527, 924539, 924540, 924880, 924959, 924960, 925266, 926028, 926131, 926143, 926225, 928082 (minus i18n string changes), 928141, 928146 from trunk.
CCBUG: 176804
CCBUG: 169692
CCBUG: 182792
CCBUG: 176797
CCBUG: 175251
CCBUG: 75794
CCBUG: 89781
CCBUG: 145956
CCBUG: 107489
CCBUG: 165421
CCBUG: 174924
CCBUG: 103651
CCBUG: 102800
CCMAIL: bruggie@gmail.com

Bump Kompare version from 3.5.2 to 3.5.3 (trunk is 4.0.0).

Tested on Fedora 9 i386, KDE 4.2.0.

Note: skipped revision 926198 because it introduces a string and #124121 is more a user error than a bug anyway.

 M  +34 -30    kompare_shell.cpp  
 M  +18 -3     komparenavtreepart/komparenavtreepart.cpp  
 M  +15 -12    komparepart/kompare_part.cpp  
 M  +2 -2      komparepart/kompare_part.h  
 M  +9 -6      komparepart/kompareconnectwidget.cpp  
 M  +80 -31    komparepart/komparelistview.cpp  
 M  +26 -5     komparepart/komparelistview.h  
 M  +2 -2      komparepart/kompareprefdlg.cpp  
 M  +4 -1      komparepart/kompareprefdlg.h  
 M  +1 -1      komparepart/komparesplitter.cpp  
 M  +2 -1      libdialogpages/diffpage.cpp  
 M  +4 -3      libdialogpages/diffpage.h  
 M  +14 -4     libdialogpages/filespage.cpp  
 M  +4 -4      libdialogpages/filespage.h  
 M  +10 -8     libdiff2/difference.cpp  
 M  +5 -2      libdiff2/difference.h  
 M  +2 -1      libdiff2/diffhunk.cpp  
 M  +2 -2      libdiff2/diffhunk.h  
 M  +5 -30     libdiff2/diffmodel.cpp  
 M  +3 -6      libdiff2/diffmodel.h  
 M  +1 -1      libdiff2/diffmodellist.cpp  
 M  +4 -2      libdiff2/diffmodellist.h  
 M  +34 -31    libdiff2/komparemodellist.cpp  
 M  +3 -1      libdiff2/komparemodellist.h  
 M  +2 -1      libdiff2/kompareprocess.cpp  
 M  +53 -17    libdiff2/levenshteintable.cpp  
 M  +5 -1      libdiff2/parserbase.cpp  
 M  +21 -26    main.cpp  

WebSVN link: http://websvn.kde.org/?view=rev&revision=928150