Display progress while checking connectivity on push
Verifying 100 new objects are fully connected to the existing DAG is usually very cheap. Checking the entire Linux kernel history is fully connected when pushing it to a new repository can take 30-60 seconds. Display a progress counter during this time so the client knows the server is still working. Change-Id: Iababe3ee1d35cb82f2bef2f12da7a2ecd03282b0
This commit is contained in:
parent
088e80315b
commit
4c3e7931ed
|
@ -1036,6 +1036,12 @@ private boolean needCheckConnectivity() {
|
|||
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 @@ private void checkConnectivity() throws IOException {
|
|||
}
|
||||
}
|
||||
|
||||
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 @@ private void checkConnectivity() throws IOException {
|
|||
|
||||
RevObject o;
|
||||
while ((o = ow.nextObject()) != null) {
|
||||
checking.update(1);
|
||||
if (o.has(RevFlag.UNINTERESTING))
|
||||
continue;
|
||||
|
||||
|
@ -1094,6 +1103,7 @@ private void checkConnectivity() throws IOException {
|
|||
if (o instanceof RevBlob && !db.hasObject(o))
|
||||
throw new MissingObjectException(o, Constants.TYPE_BLOB);
|
||||
}
|
||||
checking.endTask();
|
||||
|
||||
if (baseObjects != null) {
|
||||
for (ObjectId id : baseObjects) {
|
||||
|
|
Loading…
Reference in New Issue