Browse Source

Merge "Update Fetch to use FetchCommand API"

stable-0.10
Chris Aniszczyk 14 years ago committed by Code Review
parent
commit
b0bfa8044a
  1. 5
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java
  2. 2
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java
  3. 42
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Fetch.java

5
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java

@ -57,14 +57,13 @@ import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.lib.RefUpdate;
import org.eclipse.jgit.transport.FetchResult;
import org.eclipse.jgit.transport.TrackingRefUpdate;
import org.eclipse.jgit.transport.Transport;
import org.kohsuke.args4j.Option;
abstract class AbstractFetchCommand extends TextBuiltin {
@Option(name = "--verbose", aliases = { "-v" }, usage = "usage_beMoreVerbose")
private boolean verbose;
protected void showFetchResult(final Transport tn, final FetchResult r) {
protected void showFetchResult(final FetchResult r) {
ObjectReader reader = db.newObjectReader();
try {
boolean shownURI = false;
@ -78,7 +77,7 @@ abstract class AbstractFetchCommand extends TextBuiltin {
final String dst = abbreviateRef(u.getLocalName(), true);
if (!shownURI) {
out.format(CLIText.get().fromURI, tn.getURI());
out.format(CLIText.get().fromURI, r.getURI());
out.println();
shownURI = true;
}

2
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java

@ -146,7 +146,7 @@ class Clone extends AbstractFetchCommand {
} finally {
tn.close();
}
showFetchResult(tn, r);
showFetchResult(r);
return r;
}

42
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Fetch.java

@ -47,13 +47,14 @@ package org.eclipse.jgit.pgm;
import java.util.List;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option;
import org.eclipse.jgit.api.FetchCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.TextProgressMonitor;
import org.eclipse.jgit.transport.FetchResult;
import org.eclipse.jgit.transport.RefSpec;
import org.eclipse.jgit.transport.Transport;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option;
@Command(common = true, usage = "usage_updateRemoteRefsFromAnotherRepository")
class Fetch extends AbstractFetchCommand {
@ -90,24 +91,21 @@ class Fetch extends AbstractFetchCommand {
@Override
protected void run() throws Exception {
final Transport tn = Transport.open(db, remote);
if (fsck != null)
tn.setCheckFetchedObjects(fsck.booleanValue());
if (prune != null)
tn.setRemoveDeletedRefs(prune.booleanValue());
tn.setDryRun(dryRun);
if (thin != null)
tn.setFetchThin(thin.booleanValue());
if (0 <= timeout)
tn.setTimeout(timeout);
final FetchResult r;
try {
r = tn.fetch(new TextProgressMonitor(), toget);
if (r.getTrackingRefUpdates().isEmpty())
return;
} finally {
tn.close();
}
showFetchResult(tn, r);
Git git = new Git(db);
FetchCommand fetch = git.fetch();
fetch.setCheckFetchedObjects(fsck.booleanValue());
fetch.setRemoveDeletedRefs(prune.booleanValue());
fetch.setRefSpecs(toget);
fetch.setTimeout(timeout);
fetch.setDryRun(dryRun);
fetch.setRemote(remote);
fetch.setThin(thin.booleanValue());
fetch.setProgressMonitor(new TextProgressMonitor());
FetchResult result = fetch.call();
if (result.getTrackingRefUpdates().isEmpty())
return;
showFetchResult(result);
}
}

Loading…
Cancel
Save