diff options
author | Dave Borowitz <dborowitz@google.com> | 2017-09-07 07:46:25 -0400 |
---|---|---|
committer | Dave Borowitz <dborowitz@google.com> | 2017-09-07 07:46:25 -0400 |
commit | bb09e093449b96fbec13b21577a1c9781e6ca45b (patch) | |
tree | fbbea96da8cc1172a3f9d851b0c8ade8445ba821 | |
parent | e68a9b3ed8dbed4708f90d97ab2747c97aa0e123 (diff) | |
download | jgit-bb09e093449b96fbec13b21577a1c9781e6ca45b.tar.gz jgit-bb09e093449b96fbec13b21577a1c9781e6ca45b.zip |
Add FetchCommand#setRefSpecs(String...) variant
Much of the time the caller can specify a RefSpec succinctly using a
string, and doesn't care about calling setters. Add a convenience method
for this case, and use it where applicable in JGit core.
Change-Id: Ic3fac7fc568eee4759236a5264d2e7e5f9b9716d
3 files changed, 28 insertions, 21 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java index 3c196724a9..1201d9f391 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java @@ -85,7 +85,6 @@ import org.eclipse.jgit.lib.Sets; import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.storage.file.FileBasedConfig; -import org.eclipse.jgit.transport.RefSpec; import org.eclipse.jgit.transport.RemoteConfig; import org.eclipse.jgit.transport.URIish; import org.eclipse.jgit.util.FileUtils; @@ -431,8 +430,8 @@ public class CheckoutCommandTest extends RepositoryTestCase { config.save(); // fetch from first repository - RefSpec spec = new RefSpec("+refs/heads/*:refs/remotes/origin/*"); - git2.fetch().setRemote("origin").setRefSpecs(spec).call(); + git2.fetch().setRemote("origin") + .setRefSpecs("+refs/heads/*:refs/remotes/origin/*").call(); return db2; } } diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchCommandTest.java index a36f6c551a..83a0564c77 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchCommandTest.java @@ -56,7 +56,6 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.transport.FetchResult; -import org.eclipse.jgit.transport.RefSpec; import org.eclipse.jgit.transport.RemoteConfig; import org.eclipse.jgit.transport.TagOpt; import org.eclipse.jgit.transport.TrackingRefUpdate; @@ -93,9 +92,8 @@ public class FetchCommandTest extends RepositoryTestCase { RevCommit commit = remoteGit.commit().setMessage("initial commit").call(); Ref tagRef = remoteGit.tag().setName("tag").call(); - RefSpec spec = new RefSpec("refs/heads/master:refs/heads/x"); - git.fetch().setRemote("test").setRefSpecs(spec) - .call(); + git.fetch().setRemote("test") + .setRefSpecs("refs/heads/master:refs/heads/x").call(); assertEquals(commit.getId(), db.resolve(commit.getId().getName() + "^{commit}")); @@ -108,8 +106,8 @@ public class FetchCommandTest extends RepositoryTestCase { remoteGit.commit().setMessage("commit").call(); Ref tagRef = remoteGit.tag().setName("foo").call(); - RefSpec spec = new RefSpec("refs/heads/*:refs/remotes/origin/*"); - git.fetch().setRemote("test").setRefSpecs(spec) + git.fetch().setRemote("test") + .setRefSpecs("refs/heads/*:refs/remotes/origin/*") .setTagOpt(TagOpt.AUTO_FOLLOW).call(); assertEquals(tagRef.getObjectId(), db.resolve("foo")); @@ -120,8 +118,8 @@ public class FetchCommandTest extends RepositoryTestCase { remoteGit.commit().setMessage("commit").call(); Ref tagRef = remoteGit.tag().setName("foo").call(); remoteGit.commit().setMessage("commit2").call(); - RefSpec spec = new RefSpec("refs/heads/*:refs/remotes/origin/*"); - git.fetch().setRemote("test").setRefSpecs(spec) + git.fetch().setRemote("test") + .setRefSpecs("refs/heads/*:refs/remotes/origin/*") .setTagOpt(TagOpt.AUTO_FOLLOW).call(); assertEquals(tagRef.getObjectId(), db.resolve("foo")); } @@ -132,9 +130,8 @@ public class FetchCommandTest extends RepositoryTestCase { remoteGit.checkout().setName("other").setCreateBranch(true).call(); remoteGit.commit().setMessage("commit2").call(); remoteGit.tag().setName("foo").call(); - RefSpec spec = new RefSpec( - "refs/heads/master:refs/remotes/origin/master"); - git.fetch().setRemote("test").setRefSpecs(spec) + git.fetch().setRemote("test") + .setRefSpecs("refs/heads/master:refs/remotes/origin/master") .setTagOpt(TagOpt.AUTO_FOLLOW).call(); assertNull(db.resolve("foo")); } @@ -146,7 +143,7 @@ public class FetchCommandTest extends RepositoryTestCase { Ref tagRef = remoteGit.tag().setName(tagName).call(); ObjectId originalId = tagRef.getObjectId(); - RefSpec spec = new RefSpec("refs/heads/*:refs/remotes/origin/*"); + String spec = "refs/heads/*:refs/remotes/origin/*"; git.fetch().setRemote("test").setRefSpecs(spec) .setTagOpt(TagOpt.AUTO_FOLLOW).call(); assertEquals(originalId, db.resolve(tagName)); @@ -172,7 +169,7 @@ public class FetchCommandTest extends RepositoryTestCase { remoteGit.commit().setMessage("commit").call(); Ref tagRef1 = remoteGit.tag().setName(tagName).call(); - RefSpec spec = new RefSpec("refs/heads/*:refs/remotes/origin/*"); + String spec = "refs/heads/*:refs/remotes/origin/*"; git.fetch().setRemote("test").setRefSpecs(spec) .setTagOpt(TagOpt.AUTO_FOLLOW).call(); assertEquals(tagRef1.getObjectId(), db.resolve(tagName)); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java index 8f83de79ac..5270283edd 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java @@ -42,10 +42,13 @@ */ package org.eclipse.jgit.api; +import static java.util.stream.Collectors.toList; + import java.io.IOException; import java.net.URISyntaxException; import java.text.MessageFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.eclipse.jgit.annotations.Nullable; @@ -392,13 +395,21 @@ public class FetchCommand extends TransportCommand<FetchCommand, FetchResult> { * * @param specs * @return {@code this} + * @since 4.9 + */ + public FetchCommand setRefSpecs(String... specs) { + return setRefSpecs( + Arrays.stream(specs).map(RefSpec::new).collect(toList())); + } + + /** + * The ref specs to be used in the fetch operation + * + * @param specs + * @return {@code this} */ public FetchCommand setRefSpecs(RefSpec... specs) { - checkCallable(); - this.refSpecs.clear(); - for (RefSpec spec : specs) - refSpecs.add(spec); - return this; + return setRefSpecs(Arrays.asList(specs)); } /** |