diff options
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java index ff45b1cda3..9d39f436c6 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java @@ -1036,6 +1036,12 @@ public abstract class BaseReceivePack { private void checkConnectivity() throws IOException { ObjectIdSubclassMap<ObjectId> baseObjects = null; ObjectIdSubclassMap<ObjectId> providedObjects = null; + ProgressMonitor checking = NullProgressMonitor.INSTANCE; + if (sideBand) { + SideBandProgressMonitor m = new SideBandProgressMonitor(msgOut); + m.setDelayStart(750, TimeUnit.MILLISECONDS); + checking = m; + } if (checkReferencedIsReachable) { baseObjects = parser.getBaseObjectIds(); @@ -1071,8 +1077,10 @@ public abstract class BaseReceivePack { } } + checking.beginTask(JGitText.get().countingObjects, ProgressMonitor.UNKNOWN); RevCommit c; while ((c = ow.next()) != null) { + checking.update(1); if (providedObjects != null // && !c.has(RevFlag.UNINTERESTING) // && !providedObjects.contains(c)) @@ -1081,6 +1089,7 @@ public abstract class BaseReceivePack { RevObject o; while ((o = ow.nextObject()) != null) { + checking.update(1); if (o.has(RevFlag.UNINTERESTING)) continue; @@ -1094,6 +1103,7 @@ public abstract class BaseReceivePack { if (o instanceof RevBlob && !db.hasObject(o)) throw new MissingObjectException(o, Constants.TYPE_BLOB); } + checking.endTask(); if (baseObjects != null) { for (ObjectId id : baseObjects) { |