|
|
@ -45,6 +45,7 @@ package org.eclipse.jgit.api; |
|
|
|
import static org.junit.Assert.assertEquals; |
|
|
|
import static org.junit.Assert.assertEquals; |
|
|
|
import static org.junit.Assert.fail; |
|
|
|
import static org.junit.Assert.fail; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
|
|
import org.eclipse.jgit.api.errors.ConcurrentRefUpdateException; |
|
|
|
import org.eclipse.jgit.api.errors.ConcurrentRefUpdateException; |
|
|
@ -53,25 +54,29 @@ import org.eclipse.jgit.api.errors.JGitInternalException; |
|
|
|
import org.eclipse.jgit.api.errors.NoHeadException; |
|
|
|
import org.eclipse.jgit.api.errors.NoHeadException; |
|
|
|
import org.eclipse.jgit.api.errors.NoMessageException; |
|
|
|
import org.eclipse.jgit.api.errors.NoMessageException; |
|
|
|
import org.eclipse.jgit.api.errors.WrongRepositoryStateException; |
|
|
|
import org.eclipse.jgit.api.errors.WrongRepositoryStateException; |
|
|
|
|
|
|
|
import org.eclipse.jgit.errors.IncorrectObjectTypeException; |
|
|
|
|
|
|
|
import org.eclipse.jgit.errors.MissingObjectException; |
|
|
|
import org.eclipse.jgit.errors.UnmergedPathException; |
|
|
|
import org.eclipse.jgit.errors.UnmergedPathException; |
|
|
|
import org.eclipse.jgit.lib.Constants; |
|
|
|
import org.eclipse.jgit.lib.Ref; |
|
|
|
import org.eclipse.jgit.lib.Repository; |
|
|
|
import org.eclipse.jgit.lib.Repository; |
|
|
|
import org.eclipse.jgit.lib.RepositoryTestCase; |
|
|
|
import org.eclipse.jgit.lib.RepositoryTestCase; |
|
|
|
import org.eclipse.jgit.revwalk.RevCommit; |
|
|
|
import org.eclipse.jgit.revwalk.RevCommit; |
|
|
|
import org.eclipse.jgit.revwalk.RevTag; |
|
|
|
import org.eclipse.jgit.revwalk.RevWalk; |
|
|
|
import org.junit.Test; |
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
|
|
|
|
public class TagCommandTest extends RepositoryTestCase { |
|
|
|
public class TagCommandTest extends RepositoryTestCase { |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void testTaggingOnHead() throws NoHeadException, NoMessageException, |
|
|
|
public void testTaggingOnHead() throws NoHeadException, NoMessageException, |
|
|
|
UnmergedPathException, ConcurrentRefUpdateException, |
|
|
|
ConcurrentRefUpdateException, JGitInternalException, |
|
|
|
JGitInternalException, WrongRepositoryStateException, |
|
|
|
WrongRepositoryStateException, InvalidTagNameException, |
|
|
|
InvalidTagNameException { |
|
|
|
MissingObjectException, IncorrectObjectTypeException, IOException { |
|
|
|
Git git = new Git(db); |
|
|
|
Git git = new Git(db); |
|
|
|
RevCommit commit = git.commit().setMessage("initial commit").call(); |
|
|
|
RevCommit commit = git.commit().setMessage("initial commit").call(); |
|
|
|
RevTag tag = git.tag().setName("tag").call(); |
|
|
|
Ref tagRef = git.tag().setName("tag").call(); |
|
|
|
assertEquals(commit.getId(), tag.getObject().getId()); |
|
|
|
assertEquals(commit.getId(), db.peel(tagRef).getPeeledObjectId()); |
|
|
|
|
|
|
|
RevWalk walk = new RevWalk(db); |
|
|
|
|
|
|
|
assertEquals("tag", walk.parseTag(tagRef.getObjectId()).getTagName()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
@ -83,8 +88,8 @@ public class TagCommandTest extends RepositoryTestCase { |
|
|
|
git.commit().setMessage("initial commit").call(); |
|
|
|
git.commit().setMessage("initial commit").call(); |
|
|
|
RevCommit commit = git.commit().setMessage("second commit").call(); |
|
|
|
RevCommit commit = git.commit().setMessage("second commit").call(); |
|
|
|
git.commit().setMessage("third commit").call(); |
|
|
|
git.commit().setMessage("third commit").call(); |
|
|
|
RevTag tag = git.tag().setObjectId(commit).setName("tag").call(); |
|
|
|
Ref tagRef = git.tag().setObjectId(commit).setName("tag").call(); |
|
|
|
assertEquals(commit.getId(), tag.getObject().getId()); |
|
|
|
assertEquals(commit.getId(), db.peel(tagRef).getPeeledObjectId()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
@ -136,21 +141,20 @@ public class TagCommandTest extends RepositoryTestCase { |
|
|
|
public void testDelete() throws Exception { |
|
|
|
public void testDelete() throws Exception { |
|
|
|
Git git = new Git(db); |
|
|
|
Git git = new Git(db); |
|
|
|
git.commit().setMessage("initial commit").call(); |
|
|
|
git.commit().setMessage("initial commit").call(); |
|
|
|
RevTag tag = git.tag().setName("tag").call(); |
|
|
|
Ref tagRef = git.tag().setName("tag").call(); |
|
|
|
assertEquals(1, db.getTags().size()); |
|
|
|
assertEquals(1, db.getTags().size()); |
|
|
|
|
|
|
|
|
|
|
|
List<String> deleted = git.tagDelete().setTags(tag.getTagName()) |
|
|
|
List<String> deleted = git.tagDelete().setTags(tagRef.getName()) |
|
|
|
.call(); |
|
|
|
.call(); |
|
|
|
assertEquals(1, deleted.size()); |
|
|
|
assertEquals(1, deleted.size()); |
|
|
|
assertEquals(tag.getTagName(), |
|
|
|
assertEquals(tagRef.getName(), deleted.get(0)); |
|
|
|
Repository.shortenRefName(deleted.get(0))); |
|
|
|
|
|
|
|
assertEquals(0, db.getTags().size()); |
|
|
|
assertEquals(0, db.getTags().size()); |
|
|
|
|
|
|
|
|
|
|
|
RevTag tag1 = git.tag().setName("tag1").call(); |
|
|
|
Ref tagRef1 = git.tag().setName("tag1").call(); |
|
|
|
RevTag tag2 = git.tag().setName("tag2").call(); |
|
|
|
Ref tagRef2 = git.tag().setName("tag2").call(); |
|
|
|
assertEquals(2, db.getTags().size()); |
|
|
|
assertEquals(2, db.getTags().size()); |
|
|
|
deleted = git.tagDelete() |
|
|
|
deleted = git.tagDelete().setTags(tagRef1.getName(), tagRef2.getName()) |
|
|
|
.setTags(tag1.getTagName(), tag2.getTagName()).call(); |
|
|
|
.call(); |
|
|
|
assertEquals(2, deleted.size()); |
|
|
|
assertEquals(2, deleted.size()); |
|
|
|
assertEquals(0, db.getTags().size()); |
|
|
|
assertEquals(0, db.getTags().size()); |
|
|
|
} |
|
|
|
} |
|
|
@ -159,13 +163,13 @@ public class TagCommandTest extends RepositoryTestCase { |
|
|
|
public void testDeleteFullName() throws Exception { |
|
|
|
public void testDeleteFullName() throws Exception { |
|
|
|
Git git = new Git(db); |
|
|
|
Git git = new Git(db); |
|
|
|
git.commit().setMessage("initial commit").call(); |
|
|
|
git.commit().setMessage("initial commit").call(); |
|
|
|
RevTag tag = git.tag().setName("tag").call(); |
|
|
|
Ref tagRef = git.tag().setName("tag").call(); |
|
|
|
assertEquals(1, db.getTags().size()); |
|
|
|
assertEquals(1, db.getTags().size()); |
|
|
|
|
|
|
|
|
|
|
|
List<String> deleted = git.tagDelete() |
|
|
|
List<String> deleted = git.tagDelete() |
|
|
|
.setTags(Constants.R_TAGS + tag.getTagName()).call(); |
|
|
|
.setTags(Repository.shortenRefName(tagRef.getName())).call(); |
|
|
|
assertEquals(1, deleted.size()); |
|
|
|
assertEquals(1, deleted.size()); |
|
|
|
assertEquals(Constants.R_TAGS + tag.getTagName(), deleted.get(0)); |
|
|
|
assertEquals(tagRef.getName(), deleted.get(0)); |
|
|
|
assertEquals(0, db.getTags().size()); |
|
|
|
assertEquals(0, db.getTags().size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -203,7 +207,7 @@ public class TagCommandTest extends RepositoryTestCase { |
|
|
|
Git git = new Git(db); |
|
|
|
Git git = new Git(db); |
|
|
|
git.add().addFilepattern("*").call(); |
|
|
|
git.add().addFilepattern("*").call(); |
|
|
|
git.commit().setMessage("initial commit").call(); |
|
|
|
git.commit().setMessage("initial commit").call(); |
|
|
|
List<RevTag> list = git.tagList().call(); |
|
|
|
List<Ref> list = git.tagList().call(); |
|
|
|
assertEquals(0, list.size()); |
|
|
|
assertEquals(0, list.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -211,7 +215,7 @@ public class TagCommandTest extends RepositoryTestCase { |
|
|
|
public void testShouldNotBlowUpIfThereAreNoCommitsInRepository() |
|
|
|
public void testShouldNotBlowUpIfThereAreNoCommitsInRepository() |
|
|
|
throws Exception { |
|
|
|
throws Exception { |
|
|
|
Git git = new Git(db); |
|
|
|
Git git = new Git(db); |
|
|
|
List<RevTag> list = git.tagList().call(); |
|
|
|
List<Ref> list = git.tagList().call(); |
|
|
|
assertEquals(0, list.size()); |
|
|
|
assertEquals(0, list.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -225,12 +229,12 @@ public class TagCommandTest extends RepositoryTestCase { |
|
|
|
git.tag().setName("v2").call(); |
|
|
|
git.tag().setName("v2").call(); |
|
|
|
git.tag().setName("v10").call(); |
|
|
|
git.tag().setName("v10").call(); |
|
|
|
|
|
|
|
|
|
|
|
List<RevTag> list = git.tagList().call(); |
|
|
|
List<Ref> list = git.tagList().call(); |
|
|
|
|
|
|
|
|
|
|
|
assertEquals(3, list.size()); |
|
|
|
assertEquals(3, list.size()); |
|
|
|
assertEquals("v10", list.get(0).getTagName()); |
|
|
|
assertEquals("refs/tags/v10", list.get(0).getName()); |
|
|
|
assertEquals("v2", list.get(1).getTagName()); |
|
|
|
assertEquals("refs/tags/v2", list.get(1).getName()); |
|
|
|
assertEquals("v3", list.get(2).getTagName()); |
|
|
|
assertEquals("refs/tags/v3", list.get(2).getName()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|