Example usage for org.eclipse.jgit.lib TagBuilder setObjectId

List of usage examples for org.eclipse.jgit.lib TagBuilder setObjectId

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib TagBuilder setObjectId.

Prototype

public void setObjectId(RevObject obj) 

Source Link

Document

Set the object this tag refers to, and infer its type.

Usage

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);
    builder.setTag("tag");
    builder.setMessage("");
    ObjectInserter ins = repo.getRepository().newObjectInserter();
    ObjectId id;/*from   ww w. j  av a2 s . c  om*/
    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   ww w.  ja va 2s . co  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;
        }//w w  w .j  ava 2  s .  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.eclipse.egit.gitflow.op.AbstractVersionFinishOperation.java

License:Open Source License

/**
 * @param monitor//from   ww w. j  av a2 s . c o m
 * @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);/*  w  ww.j av a2  s  .  com*/
    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);//ww  w.ja  v a 2s  .  c om
    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 w  w. jav  a 2 s. 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);/*w  ww  . ja  v  a  2 s .  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;
}

From source file:org.eclipse.egit.ui.internal.fetch.FetchGerritChangePage.java

License:Open Source License

private void createTag(final RefSpec spec, final String textForTag, RevCommit commit, IProgressMonitor monitor)
        throws CoreException {
    monitor.setTaskName(UIText.FetchGerritChangePage_CreatingTagTaskName);
    final TagBuilder tag = new TagBuilder();
    PersonIdent personIdent = new PersonIdent(repository);

    tag.setTag(textForTag);//from   w w w .ja v  a  2  s . co m
    tag.setTagger(personIdent);
    tag.setMessage(NLS.bind(UIText.FetchGerritChangePage_GeneratedTagMessage, spec.getSource()));
    tag.setObjectId(commit);
    new TagOperation(repository, tag, false).execute(monitor);
    monitor.worked(1);
}

From source file:org.eclipse.egit.ui.internal.history.command.CreateTagOnCommitHandler.java

License:Open Source License

public Object execute(ExecutionEvent event) throws ExecutionException {
    PlotCommit commit = (PlotCommit) getSelection(getPage()).getFirstElement();
    final Repository repo = getRepository(event);

    CreateTagDialog dialog = new CreateTagDialog(HandlerUtil.getActiveShellChecked(event), commit.getId(),
            repo);/*  ww  w.  j  av a  2  s. c  o  m*/

    if (dialog.open() != Window.OK)
        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());
    tag.setObjectId(commit);

    try {
        new TagOperation(repo, tag, dialog.shouldOverWriteTag()).execute(new NullProgressMonitor());
    } catch (CoreException e) {
        throw new ExecutionException(e.getMessage(), e);
    }
    return null;
}