Send no-progress option with NullProgressMonitor.

The NullProgressMonitor does not report progress anywhere. Inform the
server not to send progress by enabling the no-progress capability.

Change-Id: Id18dbc754c814d1a5534a284c947030bf201c569
This commit is contained in:
Colby Ranger 2013-08-05 14:33:55 -07:00
parent ffb2600dd5
commit 69761dbcdd
1 changed files with 10 additions and 1 deletions

View File

@ -63,6 +63,7 @@
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 @@ static enum MultiAck {
private boolean noDone;
private boolean noProgress;
private String lockMessage;
private PackLock packLock;
@ -320,7 +323,9 @@ public Collection<PackLock> getPackLocks() {
* 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 @@ protected void doFetch(final ProgressMonitor monitor,
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 @@ private boolean sendWants(final Collection<Ref> want) throws IOException {
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)