diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2011-05-16 11:28:23 -0700 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2011-05-16 11:28:23 -0700 |
commit | c2b87d59a0ca13f1444ea3a62decfa3f04ee7600 (patch) | |
tree | 4f64d931a1a0f98484b956f6e42d5dc2c9b89204 | |
parent | 4b4df4ccf8e59273a7d78de2b378d530716b6f2d (diff) | |
download | jgit-c2b87d59a0ca13f1444ea3a62decfa3f04ee7600.tar.gz jgit-c2b87d59a0ca13f1444ea3a62decfa3f04ee7600.zip |
Fix diff bug on inserted line
For the following patch on the linux 2.6.32 tag:
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -685,6 +685,7 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sc
static void check_spread(struct cfs_rq *cfs_rq, struct sched_entity *se)
{
+#if 0
#ifdef CONFIG_SCHED_DEBUG
s64 d = se->vruntime - cfs_rq->min_vruntime;
@@ -694,6 +695,7 @@ static void check_spread(struct cfs_rq *cfs_rq, struct
sched
if (d > 3*sysctl_sched_latency)
schedstat_inc(cfs_rq, nr_spread_over);
#endif
+#endif
}
static void
JGit produced an incorrect diff, attempting to add a new "}" instead
of the new "#endif" at the end of the hunk. This was caused by a prior
fix for bug 328895 where we wanted to "slide" a diff down in the file
when adding a new method/function and want to show the closing curly
brace as being added after the new method, rather than added onto the
end of the prior function or method just before the insertion point.
Bug: 345956
Change-Id: I32b9e24f1e2980258b1b39dd1807919ab1c5f9b2
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/AbstractDiffTestCase.java | 10 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffAlgorithm.java | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/AbstractDiffTestCase.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/AbstractDiffTestCase.java index 85b5eb7c0b..b8f8dcb5ad 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/AbstractDiffTestCase.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/AbstractDiffTestCase.java @@ -191,7 +191,15 @@ public abstract class AbstractDiffTestCase { public void testEdit_InsertNearCommonTail() { EditList r = diff(t("aq}nb"), t("aCq}nD}nb")); assertEquals(new Edit(1, 1, 1, 2), r.get(0)); - assertEquals(new Edit(3, 3, 4, 7), r.get(1)); + assertEquals(new Edit(4, 4, 5, 8), r.get(1)); + assertEquals(2, r.size()); + } + + @Test + public void testEdit_LinuxBug() { + EditList r = diff(t("a{bcdE}z"), t("a{0bcdEE}z")); + assertEquals(new Edit(2, 2, 2, 3), r.get(0)); + assertEquals(new Edit(6, 6, 7, 8), r.get(1)); assertEquals(2, r.size()); } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffAlgorithm.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffAlgorithm.java index b20e3258b6..96f4d11857 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffAlgorithm.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffAlgorithm.java @@ -126,7 +126,7 @@ public abstract class DiffAlgorithm { Edit last = e.get(e.size() - 1); if (last.getType() == Edit.Type.INSERT) { while (last.endB < b.size() - && cmp.equals(b, last.beginB, b, region.endB)) { + && cmp.equals(b, last.beginB, b, last.endB)) { last.beginA++; last.endA++; last.beginB++; |