From e222363dcd2aa2e428acd5e35cd45ab44c046bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Tue, 17 Nov 2020 09:26:03 +0100 Subject: [PATCH] Fix detection of deleted files The path /dev/null must not be prefixed with a or b. --- .../scm/repository/spi/SCMSvnDiffGenerator.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 b1cac14ca6..c7668c0520 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 @@ -596,14 +596,22 @@ public class SCMSvnDiffGenerator implements ISvnDiffGenerator { 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, formatPath(path1, "---", "a")); + displayString(outputStream, formatPath(path2, "+++", "b")); displayString(outputStream, "Binary files differ"); } catch (IOException e) { wrapException(e); } } + private String formatPath(String path, String start, String aOrB) { + if (path.equals("/dev/null")) { + return String.format("%s %s\n", start, path); + } else { + return String.format("%s %s/%s\n", start, aOrB, path); + } + } + private void displayBinary(String mimeType1, String mimeType2, OutputStream outputStream, boolean leftIsBinary, boolean rightIsBinary) throws SVNException { displayCannotDisplayFileMarkedBinary(outputStream);