diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index a60cb4a..2c34b2e 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -819,10 +819,6 @@
 is per-user, so 1024 items translates to 1024 unique user accounts.
 As each individual user account may configure multiple SSH keys,
 the total number of keys may be larger than the item count.
-+
-This cache is based off the `account_ssh_keys` table and the
-`accounts.ssh_user_name` column in the database.  If either is
-modified directly, this cache should be flushed.
 
 cache `"web_sessions"`::
 +
diff --git a/Documentation/dev-bazel.txt b/Documentation/dev-bazel.txt
index fb884d3..60a56dd 100644
--- a/Documentation/dev-bazel.txt
+++ b/Documentation/dev-bazel.txt
@@ -354,14 +354,9 @@
 
 [[consume-jgit-from-development-tree]]
 
-To consume the JGit dependency from the development tree, uncomment
-`local_repository` rule for `jgit` in WORKSPACE file and uncomment
-the lines in the `lib/jgit/**/BUILD` files for `jgit` rule aliases.
-`jgit-dev=1` must be passed in to bazel:
-
-----
-  $ bazel test --define jgit-dev=1 ...
-----
+To consume the JGit dependency from the development tree, edit
+`lib/jgit/jgit.bzl` setting LOCAL_JGIT_REPO to a directory holding a
+JGit repository.
 
 [[clean-cache]]
 === Cleaning The download cache
diff --git a/WORKSPACE b/WORKSPACE
index 0d725e8..fb0a1ab 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -130,34 +130,9 @@
     sha1 = "cdb2dcb4e22b83d6b32b93095f644c3462739e82",
 )
 
-load("//lib/jgit:jgit.bzl", "JGIT_VERS", "JGIT_REPO", "JGIT_SHA1", "JGIT_SRC_SHA1", "JGIT_SERVLET_SHA1", "JGIT_ARCHIVE_SHA1", "JGIT_JUNIT_SHA1")
+load("//lib/jgit:jgit.bzl", "jgit_repos")
 
-#
-# Uncomment jgit repository to route JGit dependency to development tree.
-# Pass jgit-dev=1 in to bazel: `bazel test --define jgit-dev=1 ...`
-# Due to: https://github.com/bazelbuild/bazel/issues/2707
-# aliases to jgit should be uncommented in lib/jgit/**/BUILD files.
-#local_repository(
-#    name = "jgit",
-#    path = "/home/<user>/projects/jgit",
-#)
-
-maven_jar(
-    name = "jgit_lib",
-    artifact = "org.eclipse.jgit:org.eclipse.jgit:" + JGIT_VERS,
-    repository = JGIT_REPO,
-    sha1 = JGIT_SHA1,
-    src_sha1 = JGIT_SRC_SHA1,
-    unsign = True,
-)
-
-maven_jar(
-    name = "jgit_servlet",
-    artifact = "org.eclipse.jgit:org.eclipse.jgit.http.server:" + JGIT_VERS,
-    repository = JGIT_REPO,
-    sha1 = JGIT_SERVLET_SHA1,
-    unsign = True,
-)
+jgit_repos()
 
 maven_jar(
     name = "javaewah",
@@ -167,21 +142,6 @@
 )
 
 maven_jar(
-    name = "jgit_archive",
-    artifact = "org.eclipse.jgit:org.eclipse.jgit.archive:" + JGIT_VERS,
-    repository = JGIT_REPO,
-    sha1 = JGIT_ARCHIVE_SHA1,
-)
-
-maven_jar(
-    name = "jgit_junit",
-    artifact = "org.eclipse.jgit:org.eclipse.jgit.junit:" + JGIT_VERS,
-    repository = JGIT_REPO,
-    sha1 = JGIT_JUNIT_SHA1,
-    unsign = True,
-)
-
-maven_jar(
     name = "gwtjsonrpc",
     artifact = "com.google.gerrit:gwtjsonrpc:1.11",
     sha1 = "0990e7eec9eec3a15661edcf9232acbac4aeacec",
@@ -449,8 +409,8 @@
 
 maven_jar(
     name = "auto_value",
-    artifact = "com.google.auto.value:auto-value:1.4-rc3",
-    sha1 = "b58e82f70576a951146ca61a00ef26806f8c4667",
+    artifact = "com.google.auto.value:auto-value:1.4",
+    sha1 = "6d1448fcd13074bd3658ef915022410b7c48343b",
 )
 
 maven_jar(
@@ -623,8 +583,8 @@
 
 maven_jar(
     name = "dropwizard_core",
-    artifact = "io.dropwizard.metrics:metrics-core:3.2.1",
-    sha1 = "f453a6b2660c369c62b83ded443391ae1bfd23a0",
+    artifact = "io.dropwizard.metrics:metrics-core:3.2.2",
+    sha1 = "cd9886f498ee2ab2d994f0c779e5553b2c450416",
 )
 
 # This version must match the version that also appears in
@@ -713,6 +673,13 @@
     sha1 = "42a25dc3219429f0e5d060061f71acb49bf010a0",
 )
 
+# Only needed when jgit is built from the development tree
+maven_jar(
+    name = "hamcrest_library",
+    artifact = "org.hamcrest:hamcrest-library:1.3",
+    sha1 = "4785a3c21320980282f9f33d0d1264a69040538f",
+)
+
 TRUTH_VERS = "0.32"
 
 maven_jar(
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ArchiveFormat.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ArchiveFormat.java
index 73ef23e..3fefcd4 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ArchiveFormat.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ArchiveFormat.java
@@ -68,6 +68,10 @@
     @SuppressWarnings("unchecked")
     ArchiveCommand.Format<T> fmt = (Format<T>) format;
     fmt.putEntry(
-        out, path, FileMode.REGULAR_FILE, new ObjectLoader.SmallObject(FileMode.TYPE_FILE, data));
+        out,
+        null,
+        path,
+        FileMode.REGULAR_FILE,
+        new ObjectLoader.SmallObject(FileMode.TYPE_FILE, data));
   }
 }
diff --git a/lib/jgit/BUILD b/lib/jgit/BUILD
index f0d25e6..e69de29 100644
--- a/lib/jgit/BUILD
+++ b/lib/jgit/BUILD
@@ -1,7 +0,0 @@
-config_setting(
-    name = "dev",
-    values = {
-        "define": "jgit-dev=1",
-    },
-    visibility = ["//visibility:public"],
-)
diff --git a/lib/jgit/jgit.bzl b/lib/jgit/jgit.bzl
index ac843d8..679e9df 100644
--- a/lib/jgit/jgit.bzl
+++ b/lib/jgit/jgit.bzl
@@ -1,19 +1,66 @@
-load("//tools/bzl:maven_jar.bzl", "GERRIT", "MAVEN_LOCAL", "MAVEN_CENTRAL")
+load("//tools/bzl:maven_jar.bzl", "GERRIT", "MAVEN_LOCAL", "MAVEN_CENTRAL", "maven_jar")
 
-JGIT_VERS = "4.6.0.201612231935-r.30-gd3148f300"
+_JGIT_VERS = "4.6.1.201703071140-r.149-g61f830d3a"
 
-DOC_VERS = "4.6.0.201612231935-r" # Set to JGIT_VERS unless using a snapshot
+_DOC_VERS = "4.6.0.201612231935-r" # Set to _JGIT_VERS unless using a snapshot
 
-JGIT_DOC_URL = "http://download.eclipse.org/jgit/site/" + DOC_VERS + "/apidocs"
+JGIT_DOC_URL = "http://download.eclipse.org/jgit/site/" + _DOC_VERS + "/apidocs"
 
-JGIT_REPO = GERRIT # Leave here even if set to MAVEN_CENTRAL.
+_JGIT_REPO = GERRIT # Leave here even if set to MAVEN_CENTRAL.
 
-JGIT_SHA1 = "a2b5970b853f8fee64589fc1103c0ceb7677ba63"
+# set this to use a local version.
+# "/home/<user>/projects/jgit"
+LOCAL_JGIT_REPO = ""
 
-JGIT_SRC_SHA1 = "765f955774c36c226aa41fba7c20119451de2db7"
+def jgit_repos():
+  if LOCAL_JGIT_REPO:
+    native.local_repository(
+        name = "jgit",
+        path = LOCAL_JGIT_REPO,
+    )
+  else:
+    jgit_maven_repos()
 
-JGIT_SERVLET_SHA1 = "d3aa54bd610db9a5c246aa8fef13989982c98628"
+def jgit_maven_repos():
+    maven_jar(
+        name = "jgit_lib",
+        artifact = "org.eclipse.jgit:org.eclipse.jgit:" + _JGIT_VERS,
+        repository = _JGIT_REPO,
+        sha1 = "dbb390b827b968558342e882e0c9b90e1ed037a2",
+        src_sha1 = "05d8939d08fe75a080fbf84f3163df5127950985",
+        unsign = True,
+    )
+    maven_jar(
+        name = "jgit_servlet",
+        artifact = "org.eclipse.jgit:org.eclipse.jgit.http.server:" + _JGIT_VERS,
+        repository = _JGIT_REPO,
+        sha1 = "136026aa28b065d04194cadcb3371b5a3f6c7235",
+        unsign = True,
+    )
+    maven_jar(
+        name = "jgit_archive",
+        artifact = "org.eclipse.jgit:org.eclipse.jgit.archive:" + _JGIT_VERS,
+        repository = _JGIT_REPO,
+        sha1 = "8be5fa1000cf66ff3deae257bb29870c93f83363",
+    )
+    maven_jar(
+        name = "jgit_junit",
+        artifact = "org.eclipse.jgit:org.eclipse.jgit.junit:" + _JGIT_VERS,
+        repository = _JGIT_REPO,
+        sha1 = "d6a6c49b137a7f1a30ec55a228826d9146c0eba4",
+        unsign = True,
+    )
 
-JGIT_ARCHIVE_SHA1 = "a728cf277396f1227c5a8dffcf5dee0188fc0821"
+def jgit_dep(name):
+  mapping = {
+      "@jgit_junit//jar": "@jgit//org.eclipse.jgit.junit:junit",
+      "@jgit_lib//jar:src": "@jgit//org.eclipse.jgit:libjgit-src.jar",
+      "@jgit_lib//jar": "@jgit//org.eclipse.jgit:jgit",
+      "@jgit_servlet//jar":"@jgit//org.eclipse.jgit.http.server:jgit-servlet",
+      "@jgit_archive//jar": "@jgit//org.eclipse.jgit.archive:jgit-archive",
+  }
 
-JGIT_JUNIT_SHA1 = "6c2b2f192c95d25a2e1576aee5d1169dd8bd2266"
+  if LOCAL_JGIT_REPO:
+    return mapping[name]
+  else:
+    return name
diff --git a/lib/jgit/org.eclipse.jgit.archive/BUILD b/lib/jgit/org.eclipse.jgit.archive/BUILD
index 9a5633c..198ff25 100644
--- a/lib/jgit/org.eclipse.jgit.archive/BUILD
+++ b/lib/jgit/org.eclipse.jgit.archive/BUILD
@@ -1,10 +1,9 @@
+load("//lib/jgit:jgit.bzl", "jgit_dep")
+
 java_library(
     name = "jgit-archive",
     data = ["//lib:LICENSE-jgit"],
     visibility = ["//visibility:public"],
-    exports = select({
-        # "//lib/jgit:dev": ["@jgit//org.eclipse.jgit.archive:jgit-archive"],
-        "//conditions:default": ["@jgit_archive//jar"],
-    }),
+    exports = [jgit_dep("@jgit_archive//jar")],
     runtime_deps = ["//lib/jgit/org.eclipse.jgit:jgit"],
 )
diff --git a/lib/jgit/org.eclipse.jgit.http.server/BUILD b/lib/jgit/org.eclipse.jgit.http.server/BUILD
index 24a58ab..6b5bf78 100644
--- a/lib/jgit/org.eclipse.jgit.http.server/BUILD
+++ b/lib/jgit/org.eclipse.jgit.http.server/BUILD
@@ -1,10 +1,9 @@
+load("//lib/jgit:jgit.bzl", "jgit_dep")
+
 java_library(
     name = "jgit-servlet",
     data = ["//lib:LICENSE-jgit"],
     visibility = ["//visibility:public"],
-    exports = select({
-        # "//lib/jgit:dev": ["@jgit//org.eclipse.jgit.http.server:jgit-servlet"],
-        "//conditions:default": ["@jgit_servlet//jar"],
-    }),
+    exports = [jgit_dep("@jgit_servlet//jar")],
     runtime_deps = ["//lib/jgit/org.eclipse.jgit:jgit"],
 )
diff --git a/lib/jgit/org.eclipse.jgit.junit/BUILD b/lib/jgit/org.eclipse.jgit.junit/BUILD
index ebfefec..ba6c42f 100644
--- a/lib/jgit/org.eclipse.jgit.junit/BUILD
+++ b/lib/jgit/org.eclipse.jgit.junit/BUILD
@@ -1,11 +1,10 @@
+load("//lib/jgit:jgit.bzl", "jgit_dep")
+
 java_library(
     name = "junit",
     testonly = 1,
     data = ["//lib:LICENSE-DO_NOT_DISTRIBUTE"],
     visibility = ["//visibility:public"],
-    exports = select({
-        # "//lib/jgit:dev": ["@jgit//org.eclipse.jgit.junit:junit"],
-        "//conditions:default": ["@jgit_junit//jar"],
-    }),
+    exports = [jgit_dep("@jgit_junit//jar")],
     runtime_deps = ["//lib/jgit/org.eclipse.jgit:jgit"],
 )
diff --git a/lib/jgit/org.eclipse.jgit/BUILD b/lib/jgit/org.eclipse.jgit/BUILD
index 38bfd4b..5586cb1 100644
--- a/lib/jgit/org.eclipse.jgit/BUILD
+++ b/lib/jgit/org.eclipse.jgit/BUILD
@@ -1,20 +1,16 @@
+load("//lib/jgit:jgit.bzl", "jgit_dep")
+
 java_library(
     name = "jgit",
     data = ["//lib:LICENSE-jgit"],
     visibility = ["//visibility:public"],
-    exports = select({
-        # "//lib/jgit:dev": ["@jgit//org.eclipse.jgit:jgit"],
-        "//conditions:default": ["@jgit_lib//jar"],
-    }),
+    exports = [jgit_dep("@jgit_lib//jar")],
     runtime_deps = [":javaewah"],
 )
 
 alias(
     name = "jgit-source",
-    actual = select({
-        # "//lib/jgit:dev": "@jgit//org.eclipse.jgit:libjgit-src.jar",
-        "//conditions:default": "@jgit_lib//jar:src",
-    }),
+    actual = jgit_dep("@jgit_lib//jar:src"),
     visibility = ["//visibility:public"],
 )
 
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js
index 3fc9440..a0189f2 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js
@@ -118,7 +118,7 @@
 
     observers: [
       '_expandedPathsChanged(_expandedFilePaths.splices)',
-      '_setReviewedFiles(_shownFiles, _files, _reviewed.*)',
+      '_setReviewedFiles(_shownFiles, _files, _reviewed.*, _loggedIn)',
     ],
 
     keyBindings: {
@@ -658,11 +658,12 @@
       return files.base.slice(0, numFilesShown);
     },
 
-    _setReviewedFiles: function(shownFiles, files, reviewedRecord) {
+    _setReviewedFiles: function(shownFiles, files, reviewedRecord, loggedIn) {
+      if (!loggedIn) { return; }
       var reviewed = reviewedRecord.base;
       var fileReviewed;
       for (var i = 0; i < files.length; i++) {
-        fileReviewed = this._computeReviewed(shownFiles[i], reviewed);
+        fileReviewed = this._computeReviewed(files[i], reviewed);
         this._files[i].isReviewed = fileReviewed;
         if (i < shownFiles.length) {
           this.set(['_shownFiles', i, 'isReviewed'], fileReviewed);
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
index 18796f6..66ad66c 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
@@ -535,6 +535,7 @@
         {__path: 'myfile.txt'},
       ];
       element._reviewed = ['/COMMIT_MSG', 'myfile.txt'];
+      element._loggedIn = true;
       element.changeNum = '42';
       element.patchRange = {
         basePatchNum: 'PARENT',
@@ -704,7 +705,6 @@
 
     test('show/hide diffs disabled for large amounts of files', function(done) {
       var computeSpy = sandbox.spy(element, '_fileListActionsVisible');
-      sandbox.stub(element, '_setReviewedFiles');
       element._files = [];
       element.changeNum = '42';
       element.patchRange = {
@@ -868,6 +868,7 @@
           done();
         });
     });
+
     test('_renderInOrder logged in', function(done) {
       element._isLoggedIn = true;
       var reviewStub = sandbox.stub(element, '_reviewFile');
