From 076d8772452d9d12be44e018e6aaba240be54002 Mon Sep 17 00:00:00 2001 From: Eduard Heimbuch Date: Mon, 16 Nov 2020 10:38:49 +0100 Subject: [PATCH] fix SVN binary diff --- .../scm/repository/spi/SCMSvnDiffGenerator.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/spi/SCMSvnDiffGenerator.java b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/spi/SCMSvnDiffGenerator.java index 81e40023f6..b1cac14ca6 100644 --- a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/spi/SCMSvnDiffGenerator.java +++ b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/spi/SCMSvnDiffGenerator.java @@ -565,6 +565,8 @@ public class SCMSvnDiffGenerator implements ISvnDiffGenerator { } if (!useGitFormat){ displayBinary(mimeType1, mimeType2, outputStream, leftIsBinary, rightIsBinary); + } else { + displayBinaryGit(target, operation, outputStream); } return; @@ -590,6 +592,18 @@ public class SCMSvnDiffGenerator implements ISvnDiffGenerator { } } + private void displayBinaryGit(SvnTarget target, SvnDiffCallback.OperationKind operation, OutputStream outputStream) throws SVNException { + String path1 = operation == SvnDiffCallback.OperationKind.Added ? "/dev/null" : getRelativeToRootPath(target, originalTarget1); + String path2 = operation == SvnDiffCallback.OperationKind.Deleted ? "/dev/null" : getRelativeToRootPath(target, originalTarget2); + try { + displayString(outputStream, String.format("--- a/%s\n", path1)); + displayString(outputStream, String.format("+++ b/%s\n", path2)); + displayString(outputStream, "Binary files differ"); + } catch (IOException e) { + wrapException(e); + } + } + private void displayBinary(String mimeType1, String mimeType2, OutputStream outputStream, boolean leftIsBinary, boolean rightIsBinary) throws SVNException { displayCannotDisplayFileMarkedBinary(outputStream);