@@ -54,7 +54,8 @@ import org.eclipse.jgit.api.Git; | |||
import org.eclipse.jgit.api.ListTagCommand; | |||
import org.eclipse.jgit.api.TagCommand; | |||
import org.eclipse.jgit.lib.ObjectId; | |||
import org.eclipse.jgit.revwalk.RevTag; | |||
import org.eclipse.jgit.lib.Ref; | |||
import org.eclipse.jgit.lib.Repository; | |||
import org.eclipse.jgit.revwalk.RevWalk; | |||
import org.kohsuke.args4j.Argument; | |||
import org.kohsuke.args4j.Option; | |||
@@ -88,9 +89,9 @@ class Tag extends TextBuiltin { | |||
command.call(); | |||
} else { | |||
ListTagCommand command = git.tagList(); | |||
List<RevTag> list = command.call(); | |||
for (RevTag revTag : list) { | |||
out.println(revTag.getTagName()); | |||
List<Ref> list = command.call(); | |||
for (Ref ref : list) { | |||
out.println(Repository.shortenRefName(ref.getName())); | |||
} | |||
} | |||
} |
@@ -67,7 +67,6 @@ import org.eclipse.jgit.lib.Repository; | |||
import org.eclipse.jgit.lib.RepositoryTestCase; | |||
import org.eclipse.jgit.lib.StoredConfig; | |||
import org.eclipse.jgit.revwalk.RevCommit; | |||
import org.eclipse.jgit.revwalk.RevTag; | |||
import org.eclipse.jgit.transport.FetchResult; | |||
import org.eclipse.jgit.transport.RefSpec; | |||
import org.eclipse.jgit.transport.RemoteConfig; | |||
@@ -264,10 +263,10 @@ public class BranchCommandTest extends RepositoryTestCase { | |||
@Test | |||
public void testCreateFromAnnotatetdTag() throws Exception { | |||
RevTag tag = git.tag().setName("V10").setObjectId(secondCommit).call(); | |||
Ref tagRef = git.tag().setName("V10").setObjectId(secondCommit).call(); | |||
Ref branch = git.branchCreate().setName("FromAnnotatedTag") | |||
.setStartPoint("refs/tags/V10").call(); | |||
assertFalse(tag.getId().equals(branch.getObjectId())); | |||
assertFalse(tagRef.getObjectId().equals(branch.getObjectId())); | |||
assertEquals(secondCommit.getId(), branch.getObjectId()); | |||
} | |||
@@ -49,11 +49,11 @@ import java.net.URISyntaxException; | |||
import org.eclipse.jgit.api.errors.GitAPIException; | |||
import org.eclipse.jgit.api.errors.JGitInternalException; | |||
import org.eclipse.jgit.lib.Ref; | |||
import org.eclipse.jgit.lib.Repository; | |||
import org.eclipse.jgit.lib.RepositoryTestCase; | |||
import org.eclipse.jgit.lib.StoredConfig; | |||
import org.eclipse.jgit.revwalk.RevCommit; | |||
import org.eclipse.jgit.revwalk.RevTag; | |||
import org.eclipse.jgit.transport.RefSpec; | |||
import org.eclipse.jgit.transport.RemoteConfig; | |||
import org.eclipse.jgit.transport.URIish; | |||
@@ -79,7 +79,7 @@ public class FetchCommandTest extends RepositoryTestCase { | |||
// create some refs via commits and tag | |||
RevCommit commit = git2.commit().setMessage("initial commit").call(); | |||
RevTag tag = git2.tag().setName("tag").call(); | |||
Ref tagRef = git2.tag().setName("tag").call(); | |||
Git git1 = new Git(db); | |||
@@ -89,7 +89,8 @@ public class FetchCommandTest extends RepositoryTestCase { | |||
assertEquals(commit.getId(), | |||
db.resolve(commit.getId().getName() + "^{commit}")); | |||
assertEquals(tag.getId(), db.resolve(tag.getId().getName())); | |||
assertEquals(tagRef.getObjectId(), | |||
db.resolve(tagRef.getObjectId().getName())); | |||
} | |||
@@ -52,12 +52,12 @@ import java.net.URISyntaxException; | |||
import org.eclipse.jgit.api.errors.GitAPIException; | |||
import org.eclipse.jgit.api.errors.JGitInternalException; | |||
import org.eclipse.jgit.errors.MissingObjectException; | |||
import org.eclipse.jgit.lib.Ref; | |||
import org.eclipse.jgit.lib.RefUpdate; | |||
import org.eclipse.jgit.lib.Repository; | |||
import org.eclipse.jgit.lib.RepositoryTestCase; | |||
import org.eclipse.jgit.lib.StoredConfig; | |||
import org.eclipse.jgit.revwalk.RevCommit; | |||
import org.eclipse.jgit.revwalk.RevTag; | |||
import org.eclipse.jgit.transport.PushResult; | |||
import org.eclipse.jgit.transport.RefSpec; | |||
import org.eclipse.jgit.transport.RemoteConfig; | |||
@@ -85,7 +85,7 @@ public class PushCommandTest extends RepositoryTestCase { | |||
Git git1 = new Git(db); | |||
// create some refs via commits and tag | |||
RevCommit commit = git1.commit().setMessage("initial commit").call(); | |||
RevTag tag = git1.tag().setName("tag").call(); | |||
Ref tagRef = git1.tag().setName("tag").call(); | |||
try { | |||
db2.resolve(commit.getId().getName() + "^{commit}"); | |||
@@ -100,7 +100,8 @@ public class PushCommandTest extends RepositoryTestCase { | |||
assertEquals(commit.getId(), | |||
db2.resolve(commit.getId().getName() + "^{commit}")); | |||
assertEquals(tag.getId(), db2.resolve(tag.getId().getName())); | |||
assertEquals(tagRef.getObjectId(), | |||
db2.resolve(tagRef.getObjectId().getName())); | |||
} | |||
@Test |
@@ -45,6 +45,7 @@ package org.eclipse.jgit.api; | |||
import static org.junit.Assert.assertEquals; | |||
import static org.junit.Assert.fail; | |||
import java.io.IOException; | |||
import java.util.List; | |||
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.NoMessageException; | |||
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.lib.Constants; | |||
import org.eclipse.jgit.lib.Ref; | |||
import org.eclipse.jgit.lib.Repository; | |||
import org.eclipse.jgit.lib.RepositoryTestCase; | |||
import org.eclipse.jgit.revwalk.RevCommit; | |||
import org.eclipse.jgit.revwalk.RevTag; | |||
import org.eclipse.jgit.revwalk.RevWalk; | |||
import org.junit.Test; | |||
public class TagCommandTest extends RepositoryTestCase { | |||
@Test | |||
public void testTaggingOnHead() throws NoHeadException, NoMessageException, | |||
UnmergedPathException, ConcurrentRefUpdateException, | |||
JGitInternalException, WrongRepositoryStateException, | |||
InvalidTagNameException { | |||
ConcurrentRefUpdateException, JGitInternalException, | |||
WrongRepositoryStateException, InvalidTagNameException, | |||
MissingObjectException, IncorrectObjectTypeException, IOException { | |||
Git git = new Git(db); | |||
RevCommit commit = git.commit().setMessage("initial commit").call(); | |||
RevTag tag = git.tag().setName("tag").call(); | |||
assertEquals(commit.getId(), tag.getObject().getId()); | |||
Ref tagRef = git.tag().setName("tag").call(); | |||
assertEquals(commit.getId(), db.peel(tagRef).getPeeledObjectId()); | |||
RevWalk walk = new RevWalk(db); | |||
assertEquals("tag", walk.parseTag(tagRef.getObjectId()).getTagName()); | |||
} | |||
@Test | |||
@@ -83,8 +88,8 @@ public class TagCommandTest extends RepositoryTestCase { | |||
git.commit().setMessage("initial commit").call(); | |||
RevCommit commit = git.commit().setMessage("second commit").call(); | |||
git.commit().setMessage("third commit").call(); | |||
RevTag tag = git.tag().setObjectId(commit).setName("tag").call(); | |||
assertEquals(commit.getId(), tag.getObject().getId()); | |||
Ref tagRef = git.tag().setObjectId(commit).setName("tag").call(); | |||
assertEquals(commit.getId(), db.peel(tagRef).getPeeledObjectId()); | |||
} | |||
@Test | |||
@@ -136,21 +141,20 @@ public class TagCommandTest extends RepositoryTestCase { | |||
public void testDelete() throws Exception { | |||
Git git = new Git(db); | |||
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()); | |||
List<String> deleted = git.tagDelete().setTags(tag.getTagName()) | |||
List<String> deleted = git.tagDelete().setTags(tagRef.getName()) | |||
.call(); | |||
assertEquals(1, deleted.size()); | |||
assertEquals(tag.getTagName(), | |||
Repository.shortenRefName(deleted.get(0))); | |||
assertEquals(tagRef.getName(), deleted.get(0)); | |||
assertEquals(0, db.getTags().size()); | |||
RevTag tag1 = git.tag().setName("tag1").call(); | |||
RevTag tag2 = git.tag().setName("tag2").call(); | |||
Ref tagRef1 = git.tag().setName("tag1").call(); | |||
Ref tagRef2 = git.tag().setName("tag2").call(); | |||
assertEquals(2, db.getTags().size()); | |||
deleted = git.tagDelete() | |||
.setTags(tag1.getTagName(), tag2.getTagName()).call(); | |||
deleted = git.tagDelete().setTags(tagRef1.getName(), tagRef2.getName()) | |||
.call(); | |||
assertEquals(2, deleted.size()); | |||
assertEquals(0, db.getTags().size()); | |||
} | |||
@@ -159,13 +163,13 @@ public class TagCommandTest extends RepositoryTestCase { | |||
public void testDeleteFullName() throws Exception { | |||
Git git = new Git(db); | |||
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()); | |||
List<String> deleted = git.tagDelete() | |||
.setTags(Constants.R_TAGS + tag.getTagName()).call(); | |||
.setTags(Repository.shortenRefName(tagRef.getName())).call(); | |||
assertEquals(1, deleted.size()); | |||
assertEquals(Constants.R_TAGS + tag.getTagName(), deleted.get(0)); | |||
assertEquals(tagRef.getName(), deleted.get(0)); | |||
assertEquals(0, db.getTags().size()); | |||
} | |||
@@ -203,7 +207,7 @@ public class TagCommandTest extends RepositoryTestCase { | |||
Git git = new Git(db); | |||
git.add().addFilepattern("*").call(); | |||
git.commit().setMessage("initial commit").call(); | |||
List<RevTag> list = git.tagList().call(); | |||
List<Ref> list = git.tagList().call(); | |||
assertEquals(0, list.size()); | |||
} | |||
@@ -211,7 +215,7 @@ public class TagCommandTest extends RepositoryTestCase { | |||
public void testShouldNotBlowUpIfThereAreNoCommitsInRepository() | |||
throws Exception { | |||
Git git = new Git(db); | |||
List<RevTag> list = git.tagList().call(); | |||
List<Ref> list = git.tagList().call(); | |||
assertEquals(0, list.size()); | |||
} | |||
@@ -225,12 +229,12 @@ public class TagCommandTest extends RepositoryTestCase { | |||
git.tag().setName("v2").call(); | |||
git.tag().setName("v10").call(); | |||
List<RevTag> list = git.tagList().call(); | |||
List<Ref> list = git.tagList().call(); | |||
assertEquals(3, list.size()); | |||
assertEquals("v10", list.get(0).getTagName()); | |||
assertEquals("v2", list.get(1).getTagName()); | |||
assertEquals("v3", list.get(2).getTagName()); | |||
assertEquals("refs/tags/v10", list.get(0).getName()); | |||
assertEquals("refs/tags/v2", list.get(1).getName()); | |||
assertEquals("refs/tags/v3", list.get(2).getName()); | |||
} | |||
} |
@@ -53,7 +53,6 @@ import org.eclipse.jgit.api.errors.JGitInternalException; | |||
import org.eclipse.jgit.lib.Constants; | |||
import org.eclipse.jgit.lib.Ref; | |||
import org.eclipse.jgit.lib.Repository; | |||
import org.eclipse.jgit.revwalk.RevTag; | |||
import org.eclipse.jgit.revwalk.RevWalk; | |||
/** | |||
@@ -62,7 +61,7 @@ import org.eclipse.jgit.revwalk.RevWalk; | |||
* @see <a href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" | |||
* >Git documentation about Tag</a> | |||
*/ | |||
public class ListTagCommand extends GitCommand<List<RevTag>> { | |||
public class ListTagCommand extends GitCommand<List<Ref>> { | |||
/** | |||
* @param repo | |||
@@ -76,25 +75,24 @@ public class ListTagCommand extends GitCommand<List<RevTag>> { | |||
* upon internal failure | |||
* @return the tags available | |||
*/ | |||
public List<RevTag> call() throws JGitInternalException { | |||
public List<Ref> call() throws JGitInternalException { | |||
checkCallable(); | |||
Map<String, Ref> refList; | |||
List<RevTag> tags = new ArrayList<RevTag>(); | |||
List<Ref> tags = new ArrayList<Ref>(); | |||
RevWalk revWalk = new RevWalk(repo); | |||
try { | |||
refList = repo.getRefDatabase().getRefs(Constants.R_TAGS); | |||
for (Ref ref : refList.values()) { | |||
RevTag tag = revWalk.parseTag(ref.getObjectId()); | |||
tags.add(tag); | |||
tags.add(ref); | |||
} | |||
} catch (IOException e) { | |||
throw new JGitInternalException(e.getMessage(), e); | |||
} finally { | |||
revWalk.release(); | |||
} | |||
Collections.sort(tags, new Comparator<RevTag>() { | |||
public int compare(RevTag o1, RevTag o2) { | |||
return o1.getTagName().compareTo(o2.getTagName()); | |||
Collections.sort(tags, new Comparator<Ref>() { | |||
public int compare(Ref o1, Ref o2) { | |||
return o1.getName().compareTo(o2.getName()); | |||
} | |||
}); | |||
setCallable(false); |
@@ -54,13 +54,13 @@ import org.eclipse.jgit.lib.Constants; | |||
import org.eclipse.jgit.lib.ObjectId; | |||
import org.eclipse.jgit.lib.ObjectInserter; | |||
import org.eclipse.jgit.lib.PersonIdent; | |||
import org.eclipse.jgit.lib.Ref; | |||
import org.eclipse.jgit.lib.RefUpdate; | |||
import org.eclipse.jgit.lib.RefUpdate.Result; | |||
import org.eclipse.jgit.lib.Repository; | |||
import org.eclipse.jgit.lib.RepositoryState; | |||
import org.eclipse.jgit.lib.TagBuilder; | |||
import org.eclipse.jgit.revwalk.RevObject; | |||
import org.eclipse.jgit.revwalk.RevTag; | |||
import org.eclipse.jgit.revwalk.RevWalk; | |||
/** | |||
@@ -71,7 +71,7 @@ import org.eclipse.jgit.revwalk.RevWalk; | |||
* @see <a href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" | |||
* >Git documentation about Tag</a> | |||
*/ | |||
public class TagCommand extends GitCommand<RevTag> { | |||
public class TagCommand extends GitCommand<Ref> { | |||
private RevObject id; | |||
private String name; | |||
@@ -97,7 +97,7 @@ public class TagCommand extends GitCommand<RevTag> { | |||
* class should only be used for one invocation of the command (means: one | |||
* call to {@link #call()}) | |||
* | |||
* @return a {@link RevTag} object representing the successful tag | |||
* @return a {@link Ref} a ref pointing to a tag | |||
* @throws NoHeadException | |||
* when called on a git repo without a HEAD reference | |||
* @throws JGitInternalException | |||
@@ -106,7 +106,7 @@ public class TagCommand extends GitCommand<RevTag> { | |||
* {@link Exception#getCause()}. Expect only | |||
* {@code IOException's} to be wrapped. | |||
*/ | |||
public RevTag call() throws JGitInternalException, | |||
public Ref call() throws JGitInternalException, | |||
ConcurrentRefUpdateException, InvalidTagNameException, NoHeadException { | |||
checkCallable(); | |||
@@ -140,7 +140,6 @@ public class TagCommand extends GitCommand<RevTag> { | |||
RevWalk revWalk = new RevWalk(repo); | |||
try { | |||
RevTag revTag = revWalk.parseTag(tagId); | |||
String refName = Constants.R_TAGS + newTag.getTag(); | |||
RefUpdate tagRef = repo.updateRef(refName); | |||
tagRef.setNewObjectId(tagId); | |||
@@ -150,7 +149,7 @@ public class TagCommand extends GitCommand<RevTag> { | |||
switch (updateResult) { | |||
case NEW: | |||
case FORCED: | |||
return revTag; | |||
return repo.getRef(refName); | |||
case LOCK_FAILURE: | |||
throw new ConcurrentRefUpdateException( | |||
JGitText.get().couldNotLockHEAD, |