]> source.dussan.org Git - jgit.git/commitdiff
Send no-progress option with NullProgressMonitor. 48/15148/1
authorColby Ranger <cranger@google.com>
Mon, 5 Aug 2013 21:33:55 +0000 (14:33 -0700)
committerColby Ranger <cranger@google.com>
Mon, 5 Aug 2013 21:56:17 +0000 (14:56 -0700)
The NullProgressMonitor does not report progress anywhere. Inform the
server not to send progress by enabling the no-progress capability.

Change-Id: Id18dbc754c814d1a5534a284c947030bf201c569

org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java

index 7a30d251adcebf6e8149b29fe65a26e6a0862c0f..f49028e37b2a993cb620ec5a0514865b85b0d7c7 100644 (file)
@@ -63,6 +63,7 @@ import org.eclipse.jgit.lib.Config;
 import org.eclipse.jgit.lib.Config.SectionParser;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.MutableObjectId;
+import org.eclipse.jgit.lib.NullProgressMonitor;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectInserter;
 import org.eclipse.jgit.lib.ProgressMonitor;
@@ -221,6 +222,8 @@ public abstract class BasePackFetchConnection extends BasePackConnection
 
        private boolean noDone;
 
+       private boolean noProgress;
+
        private String lockMessage;
 
        private PackLock packLock;
@@ -320,7 +323,9 @@ public abstract class BasePackFetchConnection extends BasePackConnection
         * Execute common ancestor negotiation and fetch the objects.
         *
         * @param monitor
-        *            progress monitor to receive status updates.
+        *            progress monitor to receive status updates. If the monitor is
+        *            the {@link NullProgressMonitor#INSTANCE}, then the no-progress
+        *            option enabled.
         * @param want
         *            the advertised remote references the caller wants to fetch.
         * @param have
@@ -337,6 +342,8 @@ public abstract class BasePackFetchConnection extends BasePackConnection
                        final Collection<Ref> want, final Set<ObjectId> have,
                        OutputStream outputStream) throws TransportException {
                try {
+                       noProgress = monitor == NullProgressMonitor.INSTANCE;
+
                        markRefsAdvertised();
                        markReachable(have, maxTimeWanted(want));
 
@@ -480,6 +487,8 @@ public abstract class BasePackFetchConnection extends BasePackConnection
 
        private String enableCapabilities() throws TransportException {
                final StringBuilder line = new StringBuilder();
+               if (noProgress)
+                       wantCapability(line, OPTION_NO_PROGRESS);
                if (includeTags)
                        includeTags = wantCapability(line, OPTION_INCLUDE_TAG);
                if (allowOfsDelta)