This is the official TortoiseSVN task tracker. Issues can only be entered into the tracker by members of the TortoiseSVN development team.
- If you have a feature/enhancement request, please discuss it first on our mailing list.
- If you found a bug in TortoiseSVN, report it first on the mailing list.
Thank you!
FS#254 - Color inline diffs
Attached to Project:
TortoiseSVN
Opened by Stefan Küng (steveking) - Thursday, 01 June 2006, 18:13 GMT+1
Last edited by Stefan Küng (steveking) - Saturday, 03 June 2006, 17:27 GMT+1
Opened by Stefan Küng (steveking) - Thursday, 01 June 2006, 18:13 GMT+1
Last edited by Stefan Küng (steveking) - Saturday, 03 June 2006, 17:27 GMT+1
|
DetailsShow inline diffs not just in the bottom two-line view but also directly in the diff views. Also show changed blocks with a different color if there are only whitespace changes inside such a block. (xxdiff calls this \’per-hunk ignore\’) |
This task depends upon
Closed by Stefan Küng (steveking)
Sunday, 04 June 2006, 14:58 GMT+1
Reason for closing: Implemented
Additional comments about closing: Implemented in revisions 6710, 6712, 6713 and 6714.
Sunday, 04 June 2006, 14:58 GMT+1
Reason for closing: Implemented
Additional comments about closing: Implemented in revisions 6710, 6712, 6713 and 6714.
xxdiff shot.png
The existing line diff colouring algorithm is not that great either as it seems not to prioritise long matching hunks over short ones, nor is it interested in the order of matching hunks. The result of this is that of you change a line where the same substring appears several times, the real change gets jumbled up with a load of bogus ones in various shades of green. I would prefer a \’simpler\’ system which operates something like this: Find longest substring common to both lines. Look to the left and right of that substring for next longest matching substrings. When all matching substrings have been found (subject to a minimum length?), mark non matching hunks as deleted in one line and added in the other. Additions in yellow, deletions in pink or cross-hatch, everything else in normal colour, ie. no green needed.
KDiff3 seems to do reasonably well, but I couldn\’t track down the linediff algorithm in the source.
Simon, please provide two strings where the diff doesn\’t work that good. Better would be a screenshot of how KDiff3 does the diff on such strings.