diff --git a/webrev/src/main/java/org/openjdk/skara/webrev/RawView.java b/webrev/src/main/java/org/openjdk/skara/webrev/RawView.java index 7a6b16f20..f90fc7015 100644 --- a/webrev/src/main/java/org/openjdk/skara/webrev/RawView.java +++ b/webrev/src/main/java/org/openjdk/skara/webrev/RawView.java @@ -50,7 +50,12 @@ public RawView(Path out, Path file, byte[] binary) { public void render(Writer w) throws IOException { var rawFile = out.resolve(file.toString()); - Files.createDirectories(rawFile.getParent()); + if (Files.exists(rawFile)) { + // If the raw file collides with a file generated by the webrev (such as index.html), rename it + rawFile = out.resolve("_" + file.toString()); + } else { + Files.createDirectories(rawFile.getParent()); + } if (binary != null) { Files.write(rawFile, binary); diff --git a/webrev/src/test/java/org/openjdk/skara/webrev/WebrevTests.java b/webrev/src/test/java/org/openjdk/skara/webrev/WebrevTests.java index 049bb4236..0f7689a83 100644 --- a/webrev/src/test/java/org/openjdk/skara/webrev/WebrevTests.java +++ b/webrev/src/test/java/org/openjdk/skara/webrev/WebrevTests.java @@ -36,7 +36,7 @@ class WebrevTests { void assertContains(Path file, String text) throws IOException { - var contents = Files.readString(file); + var contents = Files.readString(file).replaceAll("\\R", "\n"); assertTrue(contents.contains(text)); } @@ -55,6 +55,7 @@ void simple(VCS vcs) throws IOException { var hash2 = repo.commit("Commit 2", "a", "a@a.a"); new Webrev.Builder(repo, webrevFolder.path()).generate(hash1, hash2); + assertContains(webrevFolder.path().resolve("x.txt"), "1\n2\n3\n4\n"); assertContains(webrevFolder.path().resolve("index.html"), "