aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
authorHan-Wen Nienhuys <hanwen@google.com>2017-07-27 13:58:49 +0200
committerHan-Wen Nienhuys <hanwen@google.com>2017-08-01 16:00:46 +0200
commita551b64694c24fff58014ae5ca298b47539cf96d (patch)
tree2a2056ce64761130bfe78e281c427180f74163f0 /org.eclipse.jgit.test
parentab0eedcead5b38e446e7a022de1c749c5e37f115 (diff)
downloadjgit-a551b64694c24fff58014ae5ca298b47539cf96d.tar.gz
jgit-a551b64694c24fff58014ae5ca298b47539cf96d.zip
Treat RawText of binary data as file with one single line.
This avoids executing mergeAlgorithm.merge on binary data, which is unlikely to be useful. Arguably, binary data should not make it to ResolveMerger#contentMerge, but this approach has the following advantages: * binary detection is exact, since it doesn't only look at the start of the blob. * it is cheap, as we have to iterate over the bytes anyway to find '\n'. Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Change-Id: I424295df1dc60a719859d9d7c599067891b15792
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_LineMapTest.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_LineMapTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_LineMapTest.java
index e8e191d781..2e9cbb5031 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_LineMapTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_LineMapTest.java
@@ -80,6 +80,13 @@ public class RawParseUtils_LineMapTest {
}
@Test
+ public void testBinary() throws UnsupportedEncodingException {
+ final byte[] buf = "xxxfoo\nb\0ar".getBytes("ISO-8859-1");
+ final IntList map = RawParseUtils.lineMap(buf, 3, buf.length);
+ assertArrayEquals(new int[]{Integer.MIN_VALUE, 3, buf.length}, asInts(map));
+ }
+
+ @Test
public void testFourLineBlanks() throws UnsupportedEncodingException {
final byte[] buf = "foo\n\n\nbar\n".getBytes("ISO-8859-1");
final IntList map = RawParseUtils.lineMap(buf, 0, buf.length);