Fixed hunk extraction for Apply Patch
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPageInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPageInput.java
index b759c83..7ad0939 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPageInput.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPageInput.java
@@ -197,7 +197,11 @@
String strippedHunk= stripContextFromHunk(hunk);
PatchedFileNode strippedHunkNode = new HunkPatchedFileNode(strippedHunk.getBytes(),resourceNode.getType()/*"manualHunkMerge"*/, hunk.getDescription());
PatchedFileWrapper patchedFileWrapper = new PatchedFileWrapper(patchedNode);
- PatcherDiffNode parentNode = new PatcherDiffNode(diffNode, Differencer.CHANGE, null, patchedFileWrapper,strippedHunkNode, hunk);
+ //create ancestor
+ String[] hunkContents = createInput(hunk);
+ PatchedFileNode ancestor = new PatchedFileNode( hunkContents[LEFT].getBytes(), hunk.fParent.getPath().getFileExtension(), hunk.getDescription());
+
+ PatcherDiffNode parentNode = new PatcherDiffNode(diffNode, Differencer.CHANGE, ancestor, patchedFileWrapper,strippedHunkNode, hunk);
patchedFileWrapper.addContentChangeListener(previewPatchPage);
patchedFileWrapper.setParent(parentNode);
}
@@ -300,7 +304,7 @@
//skip the context
break;
case '-' :
- result.append(rest);
+ //don't add removed lines
break;
case '+' :
result.append(rest);
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPageInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPageInput.java
index b759c83..7ad0939 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPageInput.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPageInput.java
@@ -197,7 +197,11 @@
String strippedHunk= stripContextFromHunk(hunk);
PatchedFileNode strippedHunkNode = new HunkPatchedFileNode(strippedHunk.getBytes(),resourceNode.getType()/*"manualHunkMerge"*/, hunk.getDescription());
PatchedFileWrapper patchedFileWrapper = new PatchedFileWrapper(patchedNode);
- PatcherDiffNode parentNode = new PatcherDiffNode(diffNode, Differencer.CHANGE, null, patchedFileWrapper,strippedHunkNode, hunk);
+ //create ancestor
+ String[] hunkContents = createInput(hunk);
+ PatchedFileNode ancestor = new PatchedFileNode( hunkContents[LEFT].getBytes(), hunk.fParent.getPath().getFileExtension(), hunk.getDescription());
+
+ PatcherDiffNode parentNode = new PatcherDiffNode(diffNode, Differencer.CHANGE, ancestor, patchedFileWrapper,strippedHunkNode, hunk);
patchedFileWrapper.addContentChangeListener(previewPatchPage);
patchedFileWrapper.setParent(parentNode);
}
@@ -300,7 +304,7 @@
//skip the context
break;
case '-' :
- result.append(rest);
+ //don't add removed lines
break;
case '+' :
result.append(rest);