diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesView.java b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesView.java
index d772eae..1dc3b64 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesView.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesView.java
@@ -21,6 +21,7 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Charsets;
 import com.google.common.base.Objects;
+import com.google.common.base.Objects.ToStringHelper;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -456,6 +457,23 @@
     return type;
   }
 
+  @Override
+  public String toString() {
+    ToStringHelper b = Objects.toStringHelper(type.toString())
+        .omitNullValues()
+        .add("host", hostName)
+        .add("servlet", servletPath)
+        .add("repo", repositoryName)
+        .add("rev", revision)
+        .add("old", oldRevision)
+        .add("path", path);
+    if (!params.isEmpty()) {
+      b.add("params", params);
+    }
+    b.add("anchor", anchor);
+    return b.toString();
+  }
+
   /** @return an escaped, relative URL representing this view. */
   public String toUrl() {
     StringBuilder url = new StringBuilder(servletPath).append('/');
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/Revision.java b/gitiles-servlet/src/main/java/com/google/gitiles/Revision.java
index 4b362fa..3fdf777 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/Revision.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/Revision.java
@@ -23,6 +23,7 @@
 
 import org.eclipse.jgit.errors.MissingObjectException;
 import org.eclipse.jgit.lib.AbbreviatedObjectId;
+import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.revwalk.RevObject;
 import org.eclipse.jgit.revwalk.RevWalk;
@@ -128,10 +129,10 @@
     return Objects.toStringHelper(this)
         .omitNullValues()
         .add("name", name)
-        .add("id", id)
-        .add("type", type)
-        .add("peeledId", peeledId)
-        .add("peeledType", peeledType)
+        .add("id", id != null ? id.getName() : null)
+        .add("type", type > 0 ? Constants.typeString(type) : null)
+        .add("peeledId", peeledId != null ? peeledId.getName() : null)
+        .add("peeledType", type > 0 ? Constants.typeString(peeledType) : null)
         .toString();
   }
 }
