diff options
author | Han-Wen Nienhuys <hanwen@google.com> | 2017-07-27 13:58:49 +0200 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@google.com> | 2017-08-01 16:00:46 +0200 |
commit | a551b64694c24fff58014ae5ca298b47539cf96d (patch) | |
tree | 2a2056ce64761130bfe78e281c427180f74163f0 /org.eclipse.jgit.test | |
parent | ab0eedcead5b38e446e7a022de1c749c5e37f115 (diff) | |
download | jgit-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.java | 7 |
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); |