Merge "Clip very long branch names to avoid overflow"
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 b968d89..107f1e1 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java
@@ -152,9 +152,6 @@
       if (fs.contains(Field.PARENTS)) {
         result.parents = Arrays.asList(c.getParents());
       }
-      if (fs.contains(Field.SHORT_MESSAGE)) {
-        result.shortMessage = c.getShortMessage();
-      }
       if (fs.contains(Field.BRANCHES)) {
         result.branches = getRefsById(repo, c, Constants.R_HEADS);
       }
@@ -164,6 +161,20 @@
       if (fs.contains(Field.MESSAGE)) {
         result.message = c.getFullMessage();
       }
+      if (fs.contains(Field.SHORT_MESSAGE)) {
+        String msg = c.getShortMessage();
+        if (msg.length() > 80) {
+          String ft = result.message;
+          if (ft == null) {
+            ft = c.getFullMessage();
+          }
+          int lf = ft.indexOf('\n');
+          if (lf > 0) {
+            msg = ft.substring(0, lf);
+          }
+        }
+        result.shortMessage = msg;
+      }
       if (fs.contains(Field.DIFF_TREE)) {
         result.diffEntries = computeDiffEntries(repo, view, c);
       }