Support JSON view of commits in RevisionServlet Example output: $ curl 'http://localhost:8080/gitiles/+/1040ab8d5861e2804f725a936ca9b6f3be6f6239?format=JSON' )]}' { "commit": "1040ab8d5861e2804f725a936ca9b6f3be6f6239", "parents": [ "0ad024fb5aa3e4994ede801428b4e30ba06a837d" ], "author": { "name": "Dave Borowitz", "email": "[email protected]", "time": "Sun Mar 16 13:49:37 2014 -0700" }, "committer": { "name": "Dave Borowitz", "email": "[email protected]", "time": "Sun Mar 16 13:49:37 2014 -0700" }, "message": "Use CommitData to produce CommitJsonData\n\nChange-Id: I7261b0c40e97119c32627c4ea89038bbe174925f\n", "tree_diff": [ { "type": "modify", "old_id": "87f3456c40f24662d28411fda9b2cf05b82bf007", "old_mode": 33188, "old_path": "gitiles-servlet/src/main/java/com/google/gitiles/CommitJsonData.java", "new_id": "07fbd1e0eb753aa41dee53c758ced595f18f67bf", "new_mode": 33188, "new_path": "gitiles-servlet/src/main/java/com/google/gitiles/CommitJsonData.java" }, { "type": "modify", "old_id": "aa6bd34861cf2f49abd357edff0b2f3ff354aa91", "old_mode": 33188, "old_path": "gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java", "new_id": "e6ae4c2062bfe3dfb6f059f282e90af64bbd10d3", "new_mode": 33188, "new_path": "gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java" } ] } Change-Id: I29b76ce331bd6876476e3ddd56f2f484450b7e87
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java b/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java index 1c118dd..0f614e6 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java
@@ -22,7 +22,9 @@ import com.google.common.base.Predicate; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; import com.google.common.collect.Ordering; +import com.google.common.collect.Sets; import org.eclipse.jgit.diff.DiffEntry; import org.eclipse.jgit.diff.DiffFormatter; @@ -70,6 +72,10 @@ TREE, TREE_URL, URL; + + static ImmutableSet<Field> setOf(Iterable<Field> base, Field... fields) { + return Sets.immutableEnumSet(Iterables.concat(base, Arrays.asList(fields))); + } } static class DiffList {