Update Fetch to use FetchCommand API
Change-Id: I06ddc74f1ef658f4876e2bbcc3eaad3475a5371e
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java
index fd7fd44..6624d49 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java
@@ -57,14 +57,13 @@
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 @@ protected void showFetchResult(final Transport tn, final FetchResult r) {
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;
}
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java
index 1b04989..0bc72a7 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java
@@ -146,7 +146,7 @@ private FetchResult runFetch() throws NotSupportedException,
} finally {
tn.close();
}
- showFetchResult(tn, r);
+ showFetchResult(r);
return r;
}
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Fetch.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Fetch.java
index a68145b..e2467b2 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Fetch.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Fetch.java
@@ -47,13 +47,14 @@
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 @@ void nothin(final boolean ignored) {
@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);
}
}