瀏覽代碼

ReceivePack: Micro-optimize object lookup when checking connectivity

If we are checking the visibility of everything referenced in the
pack that isn't already reachable by a reference, it needs to be
in the provided set.  Since the provided set lists everything that
is in this pack, we can avoid checking to see if the blob exists
on disk, because we know it should be there, it was found in the
pack we just consumed.

Change-Id: Ie3c7746f734d13077242100a68e048f1ac18c34a
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
tags/v0.8.1
Shawn O. Pearce 14 年之前
父節點
當前提交
a770205070
共有 1 個檔案被更改,包括 7 行新增3 行删除
  1. 7
    3
      org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java

+ 7
- 3
org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java 查看文件

@@ -823,11 +823,15 @@ public class ReceivePack {

RevObject o;
while ((o = ow.nextObject()) != null) {
if (ensureObjectsProvidedVisible) {
if (providedObjects.contains(o))
continue;
else
throw new MissingObjectException(o, o.getType());
}

if (o instanceof RevBlob && !db.hasObject(o))
throw new MissingObjectException(o, Constants.TYPE_BLOB);

if (ensureObjectsProvidedVisible && !providedObjects.contains(o))
throw new MissingObjectException(o, o.getType());
}
}


Loading…
取消
儲存