diff --git a/gitiles-dev/src/main/java/com/google/gitiles/dev/DevServer.java b/gitiles-dev/src/main/java/com/google/gitiles/dev/DevServer.java
index f3f6597..82cdde0 100644
--- a/gitiles-dev/src/main/java/com/google/gitiles/dev/DevServer.java
+++ b/gitiles-dev/src/main/java/com/google/gitiles/dev/DevServer.java
@@ -17,7 +17,6 @@
 import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.gitiles.GitilesServlet.STATIC_PREFIX;
 
-import com.google.common.base.MoreObjects;
 import com.google.common.base.Strings;
 import com.google.gitiles.DebugRenderer;
 import com.google.gitiles.GitilesAccess;
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/DescribeServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/DescribeServlet.java
index 9182a88..949fbab 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/DescribeServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/DescribeServlet.java
@@ -108,12 +108,12 @@
     if (id == null) {
       return null;
     }
-    NameRevCommand cmd = nameRevCommand(id, req, res);
-    if (cmd == null) {
-      return null;
-    }
     String name;
-    try {
+    try (Git git = new Git(repo)) {
+      NameRevCommand cmd = nameRevCommand(git, id, req, res);
+      if (cmd == null) {
+        return null;
+      }
       name = cmd.call().get(id);
     } catch (GitAPIException e) {
       throw new IOException(e);
@@ -125,11 +125,10 @@
     return name;
   }
 
-  private NameRevCommand nameRevCommand(ObjectId id, HttpServletRequest req,
-      HttpServletResponse res) throws IOException {
-    Repository repo = ServletUtils.getRepository(req);
+  private NameRevCommand nameRevCommand(Git git, ObjectId id,
+      HttpServletRequest req, HttpServletResponse res) throws IOException {
     GitilesView view = ViewFilter.getView(req);
-    NameRevCommand cmd = new Git(repo).nameRev();
+    NameRevCommand cmd = git.nameRev();
     boolean all = getBooleanParam(view, ALL_PARAM);
     boolean tags = getBooleanParam(view, TAGS_PARAM);
     if (all && tags) {
