diff options
author | Christian Halstrick <christian.halstrick@sap.com> | 2020-03-15 18:11:14 -0400 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org <gerrit@eclipse.org> | 2020-03-15 18:11:14 -0400 |
commit | d22a8a2510afe16c756883daa38a887d8c5839c1 (patch) | |
tree | 7c36e2f509d21127936fa62e5bc8b7b0032c41e1 /org.eclipse.jgit.test/tst/org | |
parent | 3573cee637ca62aab225b8f840fe9f3a94a95eab (diff) | |
parent | 769606d0597431b96a45378ede6824729190315a (diff) | |
download | jgit-d22a8a2510afe16c756883daa38a887d8c5839c1.tar.gz jgit-d22a8a2510afe16c756883daa38a887d8c5839c1.zip |
Merge "tag option for clone command"
Diffstat (limited to 'org.eclipse.jgit.test/tst/org')
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java index 3d0dacab3d..b737bbec0e 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java @@ -44,6 +44,7 @@ import org.eclipse.jgit.submodule.SubmoduleStatusType; import org.eclipse.jgit.submodule.SubmoduleWalk; import org.eclipse.jgit.transport.RefSpec; import org.eclipse.jgit.transport.RemoteConfig; +import org.eclipse.jgit.transport.TagOpt; import org.eclipse.jgit.transport.URIish; import org.eclipse.jgit.util.SystemReader; import org.junit.Test; @@ -111,6 +112,7 @@ public class CloneCommandTest extends RepositoryTestCase { .size()); assertEquals(new RefSpec("+refs/heads/*:refs/remotes/origin/*"), fetchRefSpec(git2.getRepository())); + assertTagOption(git2.getRepository(), TagOpt.AUTO_FOLLOW); } @Test @@ -801,6 +803,50 @@ public class CloneCommandTest extends RepositoryTestCase { } } + @Test + public void testCloneNoTags() throws IOException, JGitInternalException, + GitAPIException, URISyntaxException { + File directory = createTempDirectory("testCloneRepository"); + CloneCommand command = Git.cloneRepository(); + command.setDirectory(directory); + command.setURI(fileUri()); + command.setNoTags(); + Git git2 = command.call(); + addRepoToClose(git2.getRepository()); + assertNotNull(git2); + assertNotNull(git2.getRepository().resolve("refs/heads/test")); + assertNull(git2.getRepository().resolve("tag-initial")); + assertNull(git2.getRepository().resolve("tag-for-blob")); + assertTagOption(git2.getRepository(), TagOpt.NO_TAGS); + } + + @Test + public void testCloneFollowTags() throws IOException, JGitInternalException, + GitAPIException, URISyntaxException { + File directory = createTempDirectory("testCloneRepository"); + CloneCommand command = Git.cloneRepository(); + command.setDirectory(directory); + command.setURI(fileUri()); + command.setBranch("refs/heads/master"); + command.setBranchesToClone( + Collections.singletonList("refs/heads/master")); + command.setTagOption(TagOpt.FETCH_TAGS); + Git git2 = command.call(); + addRepoToClose(git2.getRepository()); + assertNotNull(git2); + assertNull(git2.getRepository().resolve("refs/heads/test")); + assertNotNull(git2.getRepository().resolve("tag-initial")); + assertNotNull(git2.getRepository().resolve("tag-for-blob")); + assertTagOption(git2.getRepository(), TagOpt.FETCH_TAGS); + } + + private void assertTagOption(Repository repo, TagOpt expectedTagOption) + throws URISyntaxException { + RemoteConfig remoteConfig = new RemoteConfig( + repo.getConfig(), "origin"); + assertEquals(expectedTagOption, remoteConfig.getTagOpt()); + } + private String fileUri() { return "file://" + git.getRepository().getWorkTree().getAbsolutePath(); } |