Invalid patch created
Closed this issue · 4 comments
GoogleCodeExporter commented
* What steps will reproduce the problem?
I have attached a demonstration of the issue. This creates a patch between
two strings. It then tries to apply the patch to the first string to get
the second string.
* What is the expected output? What do you see instead?
When applying the patch, an IllegalArgumentException is thrown. The patch
created has the following invalid header on the second chunk:
@@ --2,32 +9,36 @@
* What version of the product are you using? On what operating system?
Latest version (20090202) on OS/X, Java 6 - but also occurs on Linux.
* Please provide any additional information below.
None.
Original issue reported on code.google.com by vexed.de...@googlemail.com
on 24 Mar 2009 at 6:58
Attachments:
GoogleCodeExporter commented
Confirmed. The issue is the double-negative on this header:
@@ --2,32 +9,36 @@
patch_fromText is absolutely correct to throw an IllegalArgumentException when
presented with that malformed patch.
Will investigate and push a new version within a few hours. Thank you!
Original comment by neil.fra...@gmail.com
on 24 Mar 2009 at 7:59
- Added labels: Priority-High
- Removed labels: Priority-Medium
GoogleCodeExporter commented
It looks like a simple indexing failure when moving from one patch to the next.
Affects all versions of this library. But I want to run some exhaustive tests
to
make sure. If you are in a hurry, just make the following one line patch into
patch_make(text1, diffs). Otherwise I'll post an update with a bunch more unit
tests
once I'm completely satisfied that this isn't a case of whack-a-mole. There
already
is one unit test for this, but I can see now it's incorrect.
if (!patch.diffs.isEmpty()) {
patch_addContext(patch, prepatch_text);
patches.add(patch);
patch = new Patch();
prepatch_text = postpatch_text;
// Fixes issue #18:
char_count1 = char_count2;
}
Original comment by neil.fra...@gmail.com
on 25 Mar 2009 at 1:08
GoogleCodeExporter commented
Thanks for the update Neil - appreciate the quick response.
Original comment by vexed.de...@googlemail.com
on 25 Mar 2009 at 10:46
GoogleCodeExporter commented
Yes, that one line change is a complete fix. I've pushed out a new version on
SVN
and as a source archive which corrects all four language versions. A new unit
test
has been added and an existing test has been corrected.
Thank you for the great bug report.
Original comment by neil.fra...@gmail.com
on 25 Mar 2009 at 6:02
- Changed state: Fixed