summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Rosenberg <robin.rosenberg@dewire.com>2013-01-19 11:20:27 -0500
committerGerrit Code Review @ Eclipse.org <gerrit@eclipse.org>2013-01-19 11:20:27 -0500
commitab439eed6eab4fbd09d185e4e269da2c5589b42e (patch)
tree05469b50dad961ee64a56ef13eb5b3cbfbf7fcbe
parent38b503601a6d3552a558751871906354ba1beca5 (diff)
parent3d18f65af1341bc1ebc8c5c1e92726d701e5a55e (diff)
downloadjgit-ab439eed6eab4fbd09d185e4e269da2c5589b42e.tar.gz
jgit-ab439eed6eab4fbd09d185e4e269da2c5589b42e.zip
Merge "Fix patch application WRT windows line endings."
-rw-r--r--org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1.patch10
-rw-r--r--org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1_PostImage4
-rw-r--r--org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1_PreImage4
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ApplyCommandTest.java10
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java11
5 files changed, 32 insertions, 7 deletions
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1.patch b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1.patch
new file mode 100644
index 0000000000..ba5a4fc25d
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1.patch
@@ -0,0 +1,10 @@
+diff --git a/NL1 b/NL1
+index 68abad7..b14088c 100644
+--- a/NL1
++++ b/NL1
+@@ -1,4 +1,4 @@
+ a
+-b
++d
+ c
+
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1_PostImage b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1_PostImage
new file mode 100644
index 0000000000..b14088c045
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1_PostImage
@@ -0,0 +1,4 @@
+a
+d
+c
+
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1_PreImage b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1_PreImage
new file mode 100644
index 0000000000..68abad7d93
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/NL1_PreImage
@@ -0,0 +1,4 @@
+a
+b
+c
+
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ApplyCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ApplyCommandTest.java
index 5513b44603..a0a4ddcbf7 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ApplyCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ApplyCommandTest.java
@@ -178,6 +178,16 @@ public class ApplyCommandTest extends RepositoryTestCase {
b.getString(0, b.size(), false));
}
+ @Test
+ public void testModifyNL1() throws Exception {
+ ApplyResult result = init("NL1");
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertEquals(new File(db.getWorkTree(), "NL1"), result
+ .getUpdatedFiles().get(0));
+ checkFile(new File(db.getWorkTree(), "NL1"),
+ b.getString(0, b.size(), false));
+ }
+
private static byte[] readFile(final String patchFile) throws IOException {
final InputStream in = DiffFormatterReflowTest.class
.getResourceAsStream(patchFile);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
index 2147a2e5c4..6a945e4d39 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
@@ -238,13 +238,10 @@ public class ApplyCommand extends GitCommand<ApplyResult> {
if (!isChanged(oldLines, newLines))
return; // don't touch the file
StringBuilder sb = new StringBuilder();
- final String eol = rt.size() == 0
- || (rt.size() == 1 && rt.isMissingNewlineAtEnd()) ? "\n" : rt //$NON-NLS-1$
- .getLineDelimiter();
for (String l : newLines) {
- sb.append(l);
- if (eol != null)
- sb.append(eol);
+ // don't bother handling line endings - if it was windows, the \r is
+ // still there!
+ sb.append(l).append('\n');
}
sb.deleteCharAt(sb.length() - 1);
FileWriter fw = new FileWriter(f);
@@ -252,7 +249,7 @@ public class ApplyCommand extends GitCommand<ApplyResult> {
fw.close();
}
- private boolean isChanged(List<String> ol, List<String> nl) {
+ private static boolean isChanged(List<String> ol, List<String> nl) {
if (ol.size() != nl.size())
return true;
for (int i = 0; i < ol.size(); i++)