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);