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>
This commit is contained in:
parent
6029bb24ad
commit
a770205070
|
@ -823,11 +823,15 @@ private void checkConnectivity() throws IOException {
|
|||
|
||||
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…
Reference in New Issue