List of usage examples for org.eclipse.jgit.revwalk RevTag getTagName
public final String getTagName()
From source file:com.google.gerrit.server.project.ListTags.java
License:Apache License
private static TagInfo createTagInfo(Ref ref, RevWalk rw) throws MissingObjectException, IOException { RevObject object = rw.parseAny(ref.getObjectId()); if (object instanceof RevTag) { RevTag tag = (RevTag) object; // Annotated or signed tag return new TagInfo(Constants.R_TAGS + tag.getTagName(), tag.getName(), tag.getObject().getName(), tag.getFullMessage().trim(), CommonConverters.toGitPerson(tag.getTaggerIdent())); } else {//from w w w. j av a2 s . c o m // Lightweight tag return new TagInfo(ref.getName(), ref.getObjectId().getName()); } }
From source file:com.meltmedia.cadmium.core.git.GitService.java
License:Apache License
public boolean tag(String tagname, String comment) throws Exception { try {//from w w w .ja va2 s . co m git.fetch().setTagOpt(TagOpt.FETCH_TAGS).call(); } catch (Exception e) { log.debug("Fetch from origin failed.", e); } List<RevTag> tags = git.tagList().call(); if (tags != null && tags.size() > 0) { for (RevTag tag : tags) { if (tag.getTagName().equals(tagname)) { throw new Exception("Tag already exists."); } } } boolean success = git.tag().setMessage(comment).setName(tagname).call() != null; try { git.push().setPushTags().call(); } catch (Exception e) { log.debug("Failed to push changes.", e); } return success; }
From source file:org.eclipse.che.git.impl.jgit.JGitConnection.java
License:Open Source License
@Override public Tag tagCreate(TagCreateRequest request) throws GitException { String commit = request.getCommit(); if (commit == null) { commit = Constants.HEAD;//from w ww . ja v a 2s. c o m } try { RevWalk revWalk = new RevWalk(repository); RevObject revObject; try { revObject = revWalk.parseAny(repository.resolve(commit)); } finally { revWalk.close(); } TagCommand tagCommand = getGit().tag().setName(request.getName()).setObjectId(revObject) .setMessage(request.getMessage()).setForceUpdate(request.isForce()); GitUser tagger = getUser(); if (tagger != null) { tagCommand.setTagger(new PersonIdent(tagger.getName(), tagger.getEmail())); } Ref revTagRef = tagCommand.call(); RevTag revTag = revWalk.parseTag(revTagRef.getLeaf().getObjectId()); return newDto(Tag.class).withName(revTag.getTagName()); } catch (IOException | GitAPIException exception) { throw new GitException(exception.getMessage(), exception); } }
From source file:org.eclipse.egit.ui.internal.dialogs.CreateTagDialog.java
License:Open Source License
private void createExistingTagsSection(Composite parent) { Composite right = new Composite(parent, SWT.NORMAL); right.setLayout(GridLayoutFactory.swtDefaults().create()); right.setLayoutData(GridLayoutFactory.fillDefaults().create()); new Label(right, SWT.WRAP).setText(UIText.CreateTagDialog_existingTags); Table table = new Table(right, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE); table.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(80, 100).create()); TableLayout layout = new TableLayout(); layout.addColumnData(new ColumnWeightData(100, 20)); table.setLayout(layout);// w w w . jav a 2s .c o m tagViewer = new TableViewer(table); tagViewer.setLabelProvider(new TagLabelProvider()); tagViewer.setContentProvider(ArrayContentProvider.getInstance()); tagViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { fillTagDialog(); } }); tagViewer.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof String) return true; RevTag actTag = (RevTag) element; if (tagNamePattern != null) return tagNamePattern.matcher(actTag.getTagName()).find(); else return true; } }); // let's set the table inactive initially and display a "Loading..." // message and fill the list asynchronously during create() in order to // improve UI responsiveness tagViewer.setInput(new String[] { UIText.CreateTagDialog_LoadingMessageText }); tagViewer.getTable().setEnabled(false); applyDialogFont(parent); }
From source file:org.eclipse.orion.server.git.servlets.GitTagHandlerV1.java
License:Open Source License
private boolean handlePost(HttpServletRequest request, HttpServletResponse response, String path) throws IOException, JSONException, CoreException, JGitInternalException, GitAPIException { IPath p = new Path(path); File gitDir = GitUtils.getGitDir(p); Repository db = new FileRepository(gitDir); Git git = new Git(db); JSONObject toPut = OrionServlet.readJSONRequest(request); String tagName = toPut.getString(ProtocolConstants.KEY_NAME); String commitId = toPut.getString(GitConstants.KEY_TAG_COMMIT); ObjectId objectId = db.resolve(commitId); RevWalk walk = new RevWalk(db); RevCommit revCommit = walk.lookupCommit(objectId); RevTag revTag = tag(git, revCommit, tagName); JSONObject result = new JSONObject(); result.put(ProtocolConstants.KEY_NAME, revTag.getTagName()); result.put(ProtocolConstants.KEY_CONTENT_LOCATION, OrionServlet.getURI(request)); OrionServlet.writeJSONResponse(request, response, result); walk.dispose();//from ww w .j av a 2 s . c o m return true; }
From source file:org.jboss.as.controller.persistence.AbstractGitPersistenceResourceTestCase.java
License:Apache License
private List<String> listTags(Git git) throws IOException, GitAPIException { List<String> tags = new ArrayList<>(); for (Ref tag : git.tagList().call()) { RevWalk revWalk = new RevWalk(git.getRepository()); revWalk.sort(RevSort.COMMIT_TIME_DESC, true); try {//w ww . j av a2s. co m RevTag annotatedTag = revWalk.parseTag(tag.getObjectId()); tags.add(annotatedTag.getTagName() + " : " + annotatedTag.getFullMessage()); } catch (IncorrectObjectTypeException ex) { tags.add(tag.getName().substring("refs/tags/".length())); } } return tags; }
From source file:org.jboss.as.server.controller.git.GitConfigurationPersister.java
License:Apache License
@Override public SnapshotInfo listSnapshots() { try (Git git = gitRepository.getGit()) { final List<String> snapshots = new ArrayList<>(); for (Ref ref : git.tagList().call()) { RevWalk revWalk = new RevWalk(git.getRepository()); revWalk.sort(RevSort.COMMIT_TIME_DESC, true); try { RevTag annotatedTag = revWalk.parseTag(ref.getObjectId()); snapshots.add(annotatedTag.getTagName() + " : " + annotatedTag.getFullMessage()); } catch (IncorrectObjectTypeException ex) { snapshots.add(ref.getName()); }/* w ww . j a v a 2 s. c om*/ snapshots.add(ref.getName()); } return new SnapshotInfo() { @Override public String getSnapshotDirectory() { return ""; } @Override public List<String> names() { return snapshots; } }; } catch (GitAPIException ex) { MGMT_OP_LOGGER.failedToListConfigurationSnapshot(ex, mainFile.getName()); } catch (IOException ex) { MGMT_OP_LOGGER.failedToListConfigurationSnapshot(ex, mainFile.getName()); } return NULL_SNAPSHOT_INFO; }
From source file:org.jboss.as.test.manualmode.management.persistence.AbstractGitRepositoryTestCase.java
License:Apache License
protected List<String> listTags(Repository repository) throws IOException, GitAPIException { List<String> tags = new ArrayList<>(); try (Git git = new Git(repository)) { for (Ref tag : git.tagList().call()) { RevWalk revWalk = new RevWalk(repository); try { RevTag annotatedTag = revWalk.parseTag(tag.getObjectId()); tags.add(annotatedTag.getTagName()); } catch (IncorrectObjectTypeException ex) { tags.add(tag.getName().substring("refs/tags/".length())); }// w w w . j a v a 2 s. c om } } Collections.sort(tags); return tags; }
From source file:org.kuali.student.git.cleaner.AbstractRepositoryCleaner.java
License:Educational Community License
@Override public final void execute() throws IOException { onBeforeExecute();//w ww.jav a2 s . c om inserter = getRepo().newObjectInserter(); boolean localBranchSource = true; if (!getBranchRefSpec().equals(Constants.R_HEADS)) localBranchSource = false; dateString = formatter.print(new DateTime()); /* * Track the commits that are rewritten. * * This is important so that we can update the grafts file to relate to * the current parent object ids. */ PrintWriter objectTranslationWriter = new PrintWriter( "object-translations-" + getFileNameSuffix() + "-" + dateString + ".txt"); branchHeads = getRepo().getRefDatabase().getRefs(getBranchRefSpec()); commitToBranchMap = new HashMap<ObjectId, Set<Ref>>(); walkRepo = new RevWalk(getRepo()); for (Ref branchRef : branchHeads.values()) { ObjectId branchObjectId = branchRef.getObjectId(); Set<Ref> refs = commitToBranchMap.get(branchObjectId); if (refs == null) { refs = new HashSet<>(); commitToBranchMap.put(branchObjectId, refs); } refs.add(branchRef); walkRepo.markStart(walkRepo.parseCommit(branchObjectId)); onBranchHead(branchRef, branchObjectId); } if (includeTagsInRevWalk()) { tagHeads = getRepo().getRefDatabase().getRefs(Constants.R_TAGS); } else { tagHeads = new HashMap<String, Ref>(); } commitToTagMap = new HashMap<ObjectId, Set<Ref>>(); for (Ref tagRef : tagHeads.values()) { RevTag tag = walkRepo.parseTag(tagRef.getObjectId()); ObjectId commitId = tag.getObject().getId(); Set<Ref> refs = commitToTagMap.get(commitId); if (refs == null) { refs = new HashSet<>(); commitToTagMap.put(commitId, refs); } refs.add(tagRef); walkRepo.markStart(walkRepo.parseCommit(commitId)); onTag(tag.getId(), commitId); } onBeforeRevWalk(); walkRepo.sort(RevSort.TOPO, true); walkRepo.sort(RevSort.REVERSE, true); Iterator<RevCommit> it = provideRevCommitIterator(walkRepo.iterator()); deferredReferenceDeletes = new LinkedList<>(); deferredReferenceCreates = new LinkedList<>(); objectTranslationWriter.println("# new-object-id <space> original-object-id"); originalCommitIdToNewCommitIdMap = new HashMap<>(); GitTreeProcessor treeProcessor = new GitTreeProcessor(getRepo()); processedCommits = new HashSet<ObjectId>(); while (it.hasNext()) { RevCommit commit = it.next(); boolean recreateCommitByTranslatedParent = determineIfRecreateByTranslatedParent(commit); GitTreeData tree = treeProcessor.extractExistingTreeDataFromCommit(commit.getId()); boolean recreate = processCommitTree(commit, tree); if (!recreateCommitByTranslatedParent && !recreate) { processedCommits.add(commit.getId()); continue; } /* * Process in reverse order from old to new. */ CommitBuilder builder = new CommitBuilder(); builder.setAuthor(commit.getAuthorIdent()); builder.setMessage(commit.getFullMessage()); builder.setCommitter(commit.getCommitterIdent()); if (tree.isTreeDirty()) { ObjectId newTreeId = tree.buildTree(inserter); builder.setTreeId(newTreeId); } else { builder.setTreeId(commit.getTree().getId()); } builder.setEncoding("UTF-8"); Set<ObjectId> newParents = processParents(commit); builder.setParentIds(new ArrayList<>(newParents)); ObjectId newCommitId = inserter.insert(builder); onNewCommit(commit, newCommitId); originalCommitIdToNewCommitIdMap.put(commit.getId(), newCommitId); objectTranslationWriter.println(newCommitId.name() + " " + commit.getId().getName()); RevWalk commitWalk = new RevWalk(getRepo()); RevCommit newCommit = commitWalk.parseCommit(newCommitId); processedCommits.add(newCommitId); // check if any tags need to be moved if (commitToTagMap.containsKey(commit.getId())) { Set<Ref> tags = commitToTagMap.get(commit.getId()); Set<TagBuilder> newTagSet = new HashSet<>(); for (Ref tagRef : tags) { RevTag tag = commitWalk.parseTag(tagRef.getObjectId()); TagBuilder tb = new TagBuilder(); tb.setMessage(tag.getFullMessage()); tb.setObjectId(newCommit); tb.setTag(tag.getTagName()); tb.setTagger(tag.getTaggerIdent()); newTagSet.add(tb); deferDelete(tagRef.getName(), tagRef.getObjectId()); } for (TagBuilder tagBuilder : newTagSet) { ObjectId tagId = inserter.insert(tagBuilder); String tagName = Constants.R_TAGS + tagBuilder.getTag(); deferCreate(tagName, tagId); onTagRefCreate(tagName, tagId); } } // check if any branches need to be moved if (commitToBranchMap.containsKey(commit.getId())) { Set<Ref> refs = commitToBranchMap.get(commit.getId()); for (Ref branchRef : refs) { if (localBranchSource) { deferDelete(branchRef.getName(), branchRef.getObjectId()); } String adjustedBranchName = Constants.R_HEADS + branchRef.getName().substring(getBranchRefSpec().length()); deferCreate(adjustedBranchName, newCommitId); onBranchRefCreate(adjustedBranchName, newCommitId); } } commitWalk.release(); } inserter.flush(); getRepo().getRefDatabase().refresh(); log.info("Applying updates: " + deferredReferenceDeletes.size() + " deletes, " + deferredReferenceCreates.size() + " creates."); if (getExternalGitCommandPath() != null) { ExternalGitUtils.batchRefUpdate(getExternalGitCommandPath(), getRepo(), deferredReferenceDeletes, System.out); } else { GitRefUtils.batchRefUpdate(getRepo(), deferredReferenceDeletes, NullProgressMonitor.INSTANCE); } getRepo().getRefDatabase().refresh(); if (getExternalGitCommandPath() != null) { ExternalGitUtils.batchRefUpdate(getExternalGitCommandPath(), getRepo(), deferredReferenceCreates, System.out); } else { GitRefUtils.batchRefUpdate(getRepo(), deferredReferenceCreates, NullProgressMonitor.INSTANCE); } log.info("Completed."); walkRepo.release(); inserter.release(); close(); objectTranslationWriter.close(); }
From source file:pl.project13.jgit.DescribeCommand.java
License:Open Source License
private Map<ObjectId, List<String>> findTagObjectIds(@NotNull Repository repo, boolean tagsFlag) { Map<ObjectId, List<DatedRevTag>> commitIdsToTags = newHashMap(); RevWalk walk = new RevWalk(repo); try {//from w w w . j a v a2 s . c o m walk.markStart(walk.parseCommit(repo.resolve("HEAD"))); List<Ref> tagRefs = Git.wrap(repo).tagList().call(); String matchPattern = createMatchPattern(); Pattern regex = Pattern.compile(matchPattern); log("Tag refs [", tagRefs, "]"); for (Ref tagRef : tagRefs) { walk.reset(); String name = tagRef.getName(); if (!regex.matcher(name).matches()) { log("Skipping tagRef with name [", name, "] as it doesn't match [", matchPattern, "]"); continue; } ObjectId resolvedCommitId = repo.resolve(name); // todo that's a bit of a hack... try { final RevTag revTag = walk.parseTag(resolvedCommitId); ObjectId taggedCommitId = revTag.getObject().getId(); log("Resolved tag [", revTag.getTagName(), "] [", revTag.getTaggerIdent(), "], points at [", taggedCommitId, "] "); // sometimes a tag, may point to another tag, so we need to unpack it while (isTagId(taggedCommitId)) { taggedCommitId = walk.parseTag(taggedCommitId).getObject().getId(); } if (commitIdsToTags.containsKey(taggedCommitId)) { commitIdsToTags.get(taggedCommitId).add(new DatedRevTag(revTag)); } else { commitIdsToTags.put(taggedCommitId, newArrayList(new DatedRevTag(revTag))); } } catch (IncorrectObjectTypeException ex) { // it's an lightweight tag! (yeah, really) if (tagsFlag) { // --tags means "include lightweight tags" log("Including lightweight tag [", name, "]"); DatedRevTag datedRevTag = new DatedRevTag(resolvedCommitId, name); if (commitIdsToTags.containsKey(resolvedCommitId)) { commitIdsToTags.get(resolvedCommitId).add(datedRevTag); } else { commitIdsToTags.put(resolvedCommitId, newArrayList(datedRevTag)); } } } catch (Exception ignored) { error("Failed while parsing [", tagRef, "] -- ", Throwables.getStackTraceAsString(ignored)); } } for (Map.Entry<ObjectId, List<DatedRevTag>> entry : commitIdsToTags.entrySet()) { log("key [", entry.getKey(), "], tags => [", entry.getValue(), "] "); } Map<ObjectId, List<String>> commitIdsToTagNames = transformRevTagsMapToDateSortedTagNames( commitIdsToTags); log("Created map: [", commitIdsToTagNames, "] "); return commitIdsToTagNames; } catch (Exception e) { log("Unable to locate tags\n[", Throwables.getStackTraceAsString(e), "]"); } finally { walk.release(); } return Collections.emptyMap(); }