Accept first-parent parameter in LogServlet

The parameter "first-parent" is now accepted for +log. Providing
first-parent will result in +log returning commits from walking only
along first-parents when merge commits are encountered. first-parent can
be provided with the other currently supported parameters, topo-order
and reverse.

Signed-off-by: Alex Spradlin <[email protected]>
Change-Id: Ie9b8ed3c4ac9cbb4f192615048861b58b17b655b
diff --git a/javatests/com/google/gitiles/LogServletTest.java b/javatests/com/google/gitiles/LogServletTest.java
index 06ddaf4..7232439 100644
--- a/javatests/com/google/gitiles/LogServletTest.java
+++ b/javatests/com/google/gitiles/LogServletTest.java
@@ -67,6 +67,19 @@
   }
 
   @Test
+  public void firstParentLog() throws Exception {
+    RevCommit p1 = repo.update("master", repo.commit().add("foo", "foo\n"));
+    RevCommit p2 = repo.update("master", repo.commit().add("foo", "foo2\n"));
+    RevCommit c = repo.update("master", repo.commit().parent(p1).parent(p2).add("foo", "foo3\n"));
+
+    Log response = buildJson(LOG, "/repo/+log/master", "first-parent");
+    assertThat(response.log).hasSize(2);
+
+    verifyJsonCommit(response.log.get(0), c);
+    verifyJsonCommit(response.log.get(1), p1);
+  }
+
+  @Test
   public void follow() throws Exception {
     String contents = "contents";
     RevCommit c1 = repo.branch("master").commit().add("foo", contents).create();