Add follow support to LogServlet Currently just adds a TreeFilter to the walk; there is not yet any indication in the HTML view that a rename occurred. Change-Id: Idacd5713155df6f616f1a72e09bce14e0463a80e
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/LogServletTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/LogServletTest.java index 893e259..56f1c29 100644 --- a/gitiles-servlet/src/test/java/com/google/gitiles/LogServletTest.java +++ b/gitiles-servlet/src/test/java/com/google/gitiles/LogServletTest.java
@@ -68,6 +68,31 @@ assertThat(jc1.treeDiff.get(0).newPath).isEqualTo("foo"); } + @Test + public void follow() throws Exception { + String contents = "contents"; + RevCommit c1 = repo.branch("master") + .commit() + .add("foo", contents) + .create(); + RevCommit c2 = repo.branch("master") + .commit() + .rm("foo") + .add("bar", contents) + .create(); + repo.getRevWalk().parseBody(c1); + repo.getRevWalk().parseBody(c2); + + Log response = buildJson(LOG, "/repo/+log/master/bar"); + assertThat(response.log).hasSize(1); + verifyJsonCommit(response.log.get(0), c2); + + response = buildJson(LOG, "/repo/+log/master/bar", "follow=1"); + assertThat(response.log).hasSize(2); + verifyJsonCommit(response.log.get(0), c2); + verifyJsonCommit(response.log.get(1), c1); + } + private void verifyJsonCommit(Commit jsonCommit, RevCommit commit) throws Exception { repo.getRevWalk().parseBody(commit); GitilesAccess access = new TestGitilesAccess(repo.getRepository()).forRequest(null);