Display current branch SHA-1 in Branches tab

We now show the current SHA-1 alongside the branch name.

Change-Id: I2fc2295e83d4c346b3122928ea0434036d753b2d
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/src/main/java/com/google/gerrit/client/admin/AdminConstants.java b/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
index b260e1c..bdbbd41 100644
--- a/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
+++ b/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
@@ -64,6 +64,7 @@
   String columnRightRange();
 
   String columnBranchName();
+  String columnBranchRevision();
   String initialRevision();
   String buttonAddBranch();
   String buttonDeleteBranch();
diff --git a/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties b/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
index b8ea8fb..4b24fe6 100644
--- a/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
+++ b/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
@@ -45,6 +45,7 @@
 columnRightRange = Permitted Range
 
 columnBranchName = Branch Name
+columnBranchRevision = Revision
 initialRevision = Initial Revision
 buttonAddBranch = Create Branch
 buttonDeleteBranch = Delete
diff --git a/src/main/java/com/google/gerrit/client/admin/ProjectBranchesPanel.java b/src/main/java/com/google/gerrit/client/admin/ProjectBranchesPanel.java
index 429f690..c3fbe50 100644
--- a/src/main/java/com/google/gerrit/client/admin/ProjectBranchesPanel.java
+++ b/src/main/java/com/google/gerrit/client/admin/ProjectBranchesPanel.java
@@ -212,12 +212,13 @@
     BranchesTable() {
       table.setWidth("");
       table.setText(0, 2, Util.C.columnBranchName());
-      table.setHTML(0, 3, "&nbsp;");
+      table.setText(0, 3, Util.C.columnBranchRevision());
 
       final FlexCellFormatter fmt = table.getFlexCellFormatter();
       fmt.addStyleName(0, 1, S_ICON_HEADER);
       fmt.addStyleName(0, 2, S_DATA_HEADER);
       fmt.addStyleName(0, 3, S_DATA_HEADER);
+      fmt.addStyleName(0, 4, S_DATA_HEADER);
     }
 
     void deleteChecked() {
@@ -265,17 +266,21 @@
 
       table.setWidget(row, 1, new CheckBox());
       table.setText(row, 2, k.getShortName());
+
+      if (k.getRevision() != null) {
+        table.setText(row, 3, k.getRevision().get());
+      }
+
       if (c != null) {
-        table.setWidget(row, 3, new Anchor("(gitweb)", false, c.toBranch(k
+        table.setWidget(row, 4, new Anchor("(gitweb)", false, c.toBranch(k
             .getNameKey())));
-      } else {
-        table.setHTML(row, 3, "&nbsp;");
       }
 
       final FlexCellFormatter fmt = table.getFlexCellFormatter();
       fmt.addStyleName(row, 1, S_ICON_CELL);
       fmt.addStyleName(row, 2, S_DATA_CELL);
       fmt.addStyleName(row, 3, S_DATA_CELL);
+      fmt.addStyleName(row, 4, S_DATA_CELL);
 
       setRowItem(row, k);
     }
diff --git a/src/main/java/com/google/gerrit/server/rpc/project/ListBranches.java b/src/main/java/com/google/gerrit/server/rpc/project/ListBranches.java
index 0b16b1d..e0b66d4 100644
--- a/src/main/java/com/google/gerrit/server/rpc/project/ListBranches.java
+++ b/src/main/java/com/google/gerrit/server/rpc/project/ListBranches.java
@@ -16,6 +16,7 @@
 
 import com.google.gerrit.client.reviewdb.Branch;
 import com.google.gerrit.client.reviewdb.Project;
+import com.google.gerrit.client.reviewdb.RevId;
 import com.google.gerrit.git.GitRepositoryManager;
 import com.google.gerrit.server.project.NoSuchProjectException;
 import com.google.gerrit.server.project.ProjectControl;
@@ -68,6 +69,9 @@
         final String name = ref.getOrigName();
         if (name.startsWith(Constants.R_HEADS)) {
           final Branch b = new Branch(new Branch.NameKey(projectName, name));
+          if (ref.getObjectId() != null) {
+            b.setRevision(new RevId(ref.getObjectId().name()));
+          }
           branches.add(b);
         }
       }