| Issue 473: | Error with line-level differences | |
| 1 person starred this issue and may be notified of changes. | Back to list |
Affected Version: 2.1.2-rc1-22-g2b5ce1a What steps will reproduce the problem? 1. View http://gerrit.dmdirc.com/#patch,sidebyside,932,2,src/com/dmdirc/parser/common/IgnoreList.java What is the expected output? What do you see instead? This change mostly changes just the start of the lines (changes some tabs to spaces). Previous versions of gerrit showed this correctly (highlighting just the start of the line that actually changed, but not highlighting the "}") but now it highlights big chunks of stuff that didn't actually change. Please provide any additional information below. I'm not sure when this was changed, but the only commit that strikes me as possibly having an effect is https://review.source.android.com/#q,13712,n,z
Mar 1, 2010
Fixed by change I93762d07d34eb71269ea6758ac3466a5351f8dbf
Status:
Fixed
Mar 27, 2012
(No comment was entered for this change.)
Status:
Released
|
|
| ► Sign in to add a comment |
Ugh. I think I understand the problem. We have a heuristic that says if two intraline difference edit regions are less than 5 characters apart, combine them together so they form one region. This usually works for a word change, to prevent single characters from becoming tiny little islands of context in a sea of rewritten content. In this case, most of the line content in question was a rewrite. So there is less than 5 lines of context on the lines that have "<INDENT>/**\n" or "<INDENT>}\n". Thus it is pulling the "/**\n" or or "}\n" in as part of the edit coalescing its trying to do. I can try to teach it not to coalesce non-words, or at the least to not coalesce major tokens like {} and \n.Labels: FixedIn-2.1.2