From 146cd05beae036c2dd4371050000167d4de2e604 Mon Sep 17 00:00:00 2001 From: Gustaf Lundh Date: Wed, 30 Jan 2013 14:41:58 +0100 Subject: Discard cache-automerge/* refs early in VisibleRefFilter. By discarding refs in refs/cache-automerge/ early in VisibleRefFilter, we can make life easier for both the TagMatcher and later RevWalks. For typical large Git, with many refs and lots of cached merges, we could cut the push time down significantly. Change-Id: I1c1c1bda1944f42bc5a64c02114045e7bbd9bede --- .../src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java index bc9d9f7216..8d27c0e4cb 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java @@ -74,7 +74,9 @@ public class VisibleRefFilter extends AbstractAdvertiseRefsHook { final List deferredTags = new ArrayList(); for (Ref ref : refs.values()) { - if (PatchSet.isRef(ref.getName())) { + if (ref.getName().startsWith(GitRepositoryManager.REFS_CACHE_AUTOMERGE)) { + continue; + } else if (PatchSet.isRef(ref.getName())) { // Reference to a patch set is visible if the change is visible. // if (visibleChanges.contains(Change.Id.fromRef(ref.getName()))) { -- cgit v1.2.3