public static Set<String> loadVersionTagList( Repository repository, String versionTagNamePattern) { Set<String> versionTagList = new HashSet<String>(); if (versionTagNamePattern != null) { versionTagList = new HashSet<String>(); for (String tagName : repository.getTags().keySet()) { if (tagName.matches(versionTagNamePattern)) { versionTagList.add(tagName); } } } else { versionTagList = repository.getTags().keySet(); } return versionTagList; }
private List<String> getTags() { RevCommit commit = getCommit().getRevCommit(); Repository repository = getCommit().getRepository(); List<String> tags = new ArrayList<String>(); for (Ref tag : repository.getTags().values()) if (commit.equals(repository.peel(tag).getPeeledObjectId())) tags.add(Repository.shortenRefName(tag.getName())); Collections.sort(tags); return tags; }
public List<Tag> getTagsOnCommit(final String revName) throws GitException, IOException { final Repository db = getRepository(); final ObjectId commit = db.resolve(revName); final List<Tag> ret = new ArrayList<Tag>(); for (final Map.Entry<String, Ref> tag : db.getTags().entrySet()) { final ObjectId tagId = tag.getValue().getObjectId(); if (commit.equals(tagId)) ret.add(new Tag(tag.getKey(), tagId)); } return ret; }
@Before public void before() throws Exception { repository = lookupRepository(repositoryFile); for (String ref : repository.getTags().keySet()) { RefUpdate op = repository.updateRef(ref, true); op.setRefLogMessage( "tag deleted", //$NON-NLS-1$ false); // we set the force update in order // to avoid having this rejected // due to minor issues op.setForceUpdate(true); op.delete(); } revWalk = new RevWalk(repository); }
protected static RevCommit resolveCommitIdByTagName(Repository repository, String tagName) throws IOException, GitAPIException { if (tagName == null || tagName.isEmpty()) return null; RevCommit revCommit = null; Map<String, Ref> tagMap = repository.getTags(); Ref ref = tagMap.get(tagName); if (ref != null) { RevWalk walk = new RevWalk(repository); // some reduce memory effors as described in jgit user guide walk.setRetainBody(false); ObjectId from; from = repository.resolve("refs/heads/master"); if (from == null) { Git git = new Git(repository); String lastTagName = git.describe().call(); from = repository.resolve("refs/tags/" + lastTagName); } ObjectId to = repository.resolve("refs/remotes/origin/master"); if (from == null) { throw new IllegalStateException("cannot determinate start commit"); } walk.markStart(walk.parseCommit(from)); walk.markUninteresting(walk.parseCommit(to)); try { RevObject revObject = walk.parseAny(ref.getObjectId()); if (revObject != null) { revCommit = walk.parseCommit(revObject.getId()); } } finally { walk.close(); } } return revCommit; }