List of usage examples for org.eclipse.jgit.lib TagBuilder TagBuilder
TagBuilder
From source file:com.google.gitiles.TimeCacheTest.java
License:Open Source License
@Test public void tagMissingTime() throws Exception { RevCommit commit = repo.commit().create(); TagBuilder builder = new TagBuilder(); builder.setObjectId(commit);//from w ww. ja v a2s.co m builder.setTag("tag"); builder.setMessage(""); ObjectInserter ins = repo.getRepository().newObjectInserter(); ObjectId id; try { id = ins.insert(builder); ins.flush(); } finally { ins.release(); } assertEquals(start + 1, getTime(commit)); assertEquals(start + 1, getTime(id)); }
From source file:com.google.gitiles.TimeCacheTest.java
License:Open Source License
@Test public void firstTagMissingTime() throws Exception { RevCommit commit = repo.commit().create(); repo.tick(1);//from w w w . j a v a 2 s.c o m RevTag tag = repo.tag("tag", commit); repo.tick(1); TagBuilder builder = new TagBuilder(); builder.setObjectId(tag); builder.setTag("tagtag"); builder.setMessage(""); ObjectInserter ins = repo.getRepository().newObjectInserter(); ObjectId tagTagId; try { tagTagId = ins.insert(builder); ins.flush(); } finally { ins.release(); } assertEquals(start + 1, getTime(commit)); assertEquals(start + 2, getTime(tag)); assertEquals(start + 2, getTime(tagTagId)); }
From source file:com.googlesource.gerrit.plugins.refprotection.BackupRef.java
License:Open Source License
public void createBackup(RefUpdatedEvent event, ProjectResource project) { String refName = event.getRefName(); try (Repository git = repoManager.openRepository(project.getNameKey())) { String backupRef = get(project, refName); // No-op if the backup branch name is same as the original if (backupRef.equals(refName)) { return; }/*from www.ja va 2s . c om*/ try (RevWalk revWalk = new RevWalk(git)) { RefUpdateAttribute refUpdate = event.refUpdate.get(); if (cfg.getFromGerritConfig(pluginName).getBoolean("createTag", false)) { TagBuilder tag = new TagBuilder(); AccountAttribute submitter = event.submitter.get(); tag.setTagger(new PersonIdent(submitter.name, submitter.email)); tag.setObjectId(revWalk.parseCommit(ObjectId.fromString(refUpdate.oldRev))); String update = "Non-fast-forward update to"; if (refUpdate.newRev.equals(ObjectId.zeroId().getName())) { update = "Deleted"; } String type = "branch"; String fullMessage = ""; if (refUpdate.refName.startsWith(R_TAGS)) { type = "tag"; try { RevTag origTag = revWalk.parseTag(ObjectId.fromString(refUpdate.oldRev)); SimpleDateFormat format = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy ZZZZ"); PersonIdent taggerIdent = origTag.getTaggerIdent(); String tagger = String.format("Tagger: %s <%s>\nDate: %s", taggerIdent.getName(), taggerIdent.getEmailAddress(), format.format(taggerIdent.getWhen())); fullMessage = "\n\nOriginal tag:\n" + tagger + "\n\n" + origTag.getFullMessage(); } catch (MissingObjectException e) { log.warn("Original tag does not exist", e); } catch (IncorrectObjectTypeException e) { log.warn("Original tag was not a tag", e); } catch (IOException e) { log.warn("Unable to read original tag details", e); } } tag.setMessage(update + " " + type + " " + refUpdate.refName + fullMessage); tag.setTag(backupRef); ObjectInserter inserter = git.newObjectInserter(); ObjectId tagId = inserter.insert(tag); inserter.flush(); RefUpdate tagRef = git.updateRef(tag.getTag()); tagRef.setNewObjectId(tagId); tagRef.setRefLogMessage("tagged deleted branch/tag " + tag.getTag(), false); tagRef.setForceUpdate(false); Result result = tagRef.update(); switch (result) { case NEW: case FORCED: log.debug("Successfully created backup tag"); break; case LOCK_FAILURE: log.error("Failed to lock repository while creating backup tag"); break; case REJECTED: log.error("Tag already exists while creating backup tag"); break; default: log.error("Unknown error while creating backup tag"); } } else { BranchInput input = new BranchInput(); input.ref = backupRef; // We need to parse the commit to ensure if it's a tag, we get the // commit the tag points to! input.revision = ObjectId .toString(revWalk.parseCommit(ObjectId.fromString(refUpdate.oldRev)).getId()); try { createBranchFactory.create(backupRef).apply(project, input); } catch (BadRequestException | AuthException | ResourceConflictException | IOException e) { log.error(e.getMessage(), e); } } } } catch (RepositoryNotFoundException e) { log.error("Repository does not exist", e); } catch (IOException e) { log.error("Could not open repository", e); } }
From source file:org.commonjava.gitwrap.BareGitRepository.java
License:Open Source License
public BareGitRepository createTag(final String tagSource, final String tagName, final String message, final boolean force) throws GitWrapException { try {/*from w w w.ja v a 2 s . co m*/ final ObjectId src = repository.resolve(tagSource); if (src == null) { throw new GitWrapException("Cannot resolve tag-source: %s", tagSource); } if (!force && repository.resolve(tagName) != null) { throw new GitWrapException("Tag: %s already exists!", tagName); } String dest = tagName; if (!dest.startsWith(Constants.R_TAGS)) { dest = Constants.R_TAGS + tagName; } final String tagShort = dest.substring(Constants.R_TAGS.length()); final ObjectLoader sourceLoader = repository.open(src); final ObjectInserter inserter = repository.newObjectInserter(); final TagBuilder tag = new TagBuilder(); tag.setTag(tagShort); tag.setTagger(new PersonIdent(repository)); tag.setObjectId(src, sourceLoader.getType()); tag.setMessage(message); final ObjectId tagId = inserter.insert(tag); tag.setTagId(tagId); final String refName = Constants.R_TAGS + tag.getTag(); final RefUpdate tagRef = repository.updateRef(refName); tagRef.setNewObjectId(tag.getTagId()); tagRef.setForceUpdate(force); tagRef.setRefLogMessage("Tagging source: " + src.name() + " as " + tagName, false); final Result updateResult = tagRef.update(); switch (updateResult) { case NEW: case FAST_FORWARD: case FORCED: { break; } case REJECTED: { throw new GitWrapException("Tag already exists: %s", tagName); } default: { throw new GitWrapException("Cannot lock tag: %s", tagName); } } } catch (final IOException e) { throw new GitWrapException("Failed to add tag: %s", e, e.getMessage()); } return this; }
From source file:org.eclipse.egit.core.test.op.TagOperationTest.java
License:Open Source License
@Test public void addTag() throws Exception { assertTrue("Tags should be empty", repository1.getRepository().getTags().isEmpty()); TagBuilder newTag = new TagBuilder(); newTag.setTag("TheNewTag"); newTag.setMessage("Well, I'm the tag"); newTag.setTagger(RawParseUtils.parsePersonIdent(TestUtils.AUTHOR)); newTag.setObjectId(repository1.getRepository().resolve("refs/heads/master"), Constants.OBJ_COMMIT); TagOperation top = new TagOperation(repository1.getRepository(), newTag, false); top.execute(new NullProgressMonitor()); assertFalse("Tags should not be empty", repository1.getRepository().getTags().isEmpty()); try {/* www. ja v a2 s. c o m*/ top.execute(null); fail("Expected Exception not thrown"); } catch (CoreException e) { // expected } top = new TagOperation(repository1.getRepository(), newTag, true); try { top.execute(null); fail("Expected Exception not thrown"); } catch (CoreException e) { // expected } Ref tagRef = repository1.getRepository().getTags().get("TheNewTag"); RevWalk walk = new RevWalk(repository1.getRepository()); RevTag tag = walk.parseTag(repository1.getRepository().resolve(tagRef.getName())); newTag.setMessage("Another message"); assertFalse("Messages should differ", tag.getFullMessage().equals(newTag.getMessage())); top.execute(null); tag = walk.parseTag(repository1.getRepository().resolve(tagRef.getName())); assertTrue("Messages be same", tag.getFullMessage().equals(newTag.getMessage())); }
From source file:org.eclipse.egit.gitflow.op.AbstractVersionFinishOperation.java
License:Open Source License
/** * @param monitor//from w w w .j a v a 2 s .c om * @param head * @param name * @param message * @throws CoreException */ protected void createTag(IProgressMonitor monitor, RevCommit head, String name, String message) throws CoreException { TagBuilder tag = new TagBuilder(); tag.setTag(name); tag.setTagger(new PersonIdent(repository.getRepository())); tag.setMessage(message); tag.setObjectId(head); new TagOperation(repository.getRepository(), tag, false).execute(monitor); }
From source file:org.eclipse.egit.gitflow.op.ReleaseStartOperationTest.java
License:Open Source License
protected void createTag(RevCommit head, String name, String message, Repository repository) throws CoreException { TagBuilder tag = new TagBuilder(); tag.setTag(name);//from ww w. ja va2 s. c o m tag.setMessage(message); tag.setObjectId(head); new TagOperation(repository, tag, false).execute(null); }
From source file:org.eclipse.egit.internal.relengtools.ReleaseWizard.java
License:Open Source License
private void tagProject(IProject project, IProgressMonitor monitor) throws Exception { monitor = new SubProgressMonitor(monitor, 1); monitor.beginTask("Tagging " + project.getName(), 1); final boolean shouldMoveTag = tagPage.isMoveButtonSelected(); final RepositoryMapping rm = RepositoryMapping.getMapping(project); final Repository repository = rm.getRepository(); final RevWalk rw = new RevWalk(repository); final RevObject target = rw.parseAny(repository.resolve(Constants.HEAD)); final PersonIdent personIdent = new PersonIdent(repository); final String tagName = tagPage.getTagString(); final TagBuilder tag = new TagBuilder(); tag.setTag(tagName);/*from w w w .j av a2 s . c o m*/ tag.setTagger(personIdent); tag.setObjectId(target); final TagOperation operation = new TagOperation(repository, tag, shouldMoveTag); operation.execute(monitor); monitor.done(); }
From source file:org.eclipse.egit.ui.internal.actions.TagActionHandler.java
License:Open Source License
public Object execute(ExecutionEvent event) throws ExecutionException { repo = getRepository(true, event);//from w ww . j a va 2s . co m if (repo == null) return null; if (!repo.getRepositoryState().canCheckout()) { MessageDialog.openError(getShell(event), UIText.TagAction_cannotCheckout, NLS.bind(UIText.TagAction_repositoryState, repo.getRepositoryState().getDescription())); return null; } String currentBranchName; try { currentBranchName = repo.getBranch(); } catch (IOException e) { Activator.handleError(UIText.TagAction_cannotGetBranchName, e, true); return null; } CreateTagDialog dialog = new CreateTagDialog(getShell(event), currentBranchName, repo); if (dialog.open() != IDialogConstants.OK_ID) return null; final TagBuilder tag = new TagBuilder(); PersonIdent personIdent = new PersonIdent(repo); String tagName = dialog.getTagName(); tag.setTag(tagName); tag.setTagger(personIdent); tag.setMessage(dialog.getTagMessage()); RevObject tagTarget; try { tagTarget = getTagTarget(dialog.getTagCommit()); } catch (IOException e1) { Activator.handleError(UIText.TagAction_unableToResolveHeadObjectId, e1, true); return null; } tag.setObjectId(tagTarget); String tagJobName = NLS.bind(UIText.TagAction_creating, tagName); final boolean shouldMoveTag = dialog.shouldOverWriteTag(); Job tagJob = new Job(tagJobName) { protected IStatus run(IProgressMonitor monitor) { try { new TagOperation(repo, tag, shouldMoveTag).execute(monitor); } catch (CoreException e) { return Activator.createErrorStatus(UIText.TagAction_taggingFailed, e); } finally { GitLightweightDecorator.refresh(); } return Status.OK_STATUS; } @Override public boolean belongsTo(Object family) { if (family.equals(JobFamilies.TAG)) return true; return super.belongsTo(family); } }; tagJob.setUser(true); tagJob.schedule(); return null; }
From source file:org.eclipse.egit.ui.internal.commit.command.CreateTagHandler.java
License:Open Source License
public Object execute(ExecutionEvent event) throws ExecutionException { List<RepositoryCommit> commits = getCommits(event); if (commits.size() == 1) { RepositoryCommit commit = commits.get(0); CreateTagDialog dialog = new CreateTagDialog(HandlerUtil.getActiveShellChecked(event), commit.getRevCommit().getId(), commit.getRepository()); if (dialog.open() != Window.OK) return null; final TagBuilder tag = new TagBuilder(); PersonIdent personIdent = new PersonIdent(commit.getRepository()); String tagName = dialog.getTagName(); tag.setTag(tagName);//from ww w . j a v a2s . co m tag.setTagger(personIdent); tag.setMessage(dialog.getTagMessage()); tag.setObjectId(commit.getRevCommit()); try { new TagOperation(commit.getRepository(), tag, dialog.shouldOverWriteTag()) .execute(new NullProgressMonitor()); } catch (CoreException e) { throw new ExecutionException(e.getMessage(), e); } } return null; }