Example usage for org.eclipse.jgit.revwalk RevSort COMMIT_TIME_DESC

List of usage examples for org.eclipse.jgit.revwalk RevSort COMMIT_TIME_DESC

Introduction

In this page you can find the example usage for org.eclipse.jgit.revwalk RevSort COMMIT_TIME_DESC.

Prototype

RevSort COMMIT_TIME_DESC

To view the source code for org.eclipse.jgit.revwalk RevSort COMMIT_TIME_DESC.

Click Source Link

Document

Sort by commit time, descending (newest first, oldest last).

Usage

From source file:boa.datagen.scm.GitConnector.java

License:Apache License

@Override
public String getLastCommitId() {
    if (lastCommitId == null) {
        revwalk.reset();//from   w ww.j av  a  2s .co m

        try {
            revwalk.markStart(revwalk.parseCommit(repository.resolve(Constants.HEAD)));
            revwalk.sort(RevSort.COMMIT_TIME_DESC);
            lastCommitId = revwalk.next().getId().toString();
        } catch (final Exception e) {
            if (debug)
                System.err.println("Git Error getting last commit for " + path + ". " + e.getMessage());
        }
    }
    return lastCommitId;
}

From source file:boa.datagen.scm.GitConnector.java

License:Apache License

@Override
protected void setRevisions() {
    try {//from  w ww .ja  va2s  . com
        revwalk.reset();
        revwalk.markStart(revwalk.parseCommit(repository.resolve(Constants.HEAD)));
        revwalk.sort(RevSort.TOPO, true);
        revwalk.sort(RevSort.COMMIT_TIME_DESC, true);
        revwalk.sort(RevSort.REVERSE, true);

        revisions.clear();
        revisionMap = new HashMap<String, Integer>();

        for (final RevCommit rc : revwalk) {
            final GitCommit gc = new GitCommit(repository, this);

            gc.setId(rc.getName());
            gc.setAuthor(rc.getAuthorIdent().getName());
            gc.setCommitter(rc.getCommitterIdent().getName());
            gc.setDate(new Date(((long) rc.getCommitTime()) * 1000));
            gc.setMessage(rc.getFullMessage());

            gc.getChangeFiles(this.revisionMap, rc);

            revisionMap.put(gc.id, revisions.size());
            revisions.add(gc);
        }
    } catch (final IOException e) {
        if (debug)
            System.err.println("Git Error getting parsing HEAD commit for " + path + ". " + e.getMessage());
    }
}

From source file:com.google.gerrit.server.git.MergeOp.java

License:Apache License

private void openRepository(Project.NameKey name) throws MergeException, NoSuchProjectException {
    try {/* w  w w  .  ja v  a2s  . c om*/
        repo = repoManager.openRepository(name);
    } catch (RepositoryNotFoundException notFound) {
        throw new NoSuchProjectException(name, notFound);
    } catch (IOException err) {
        String m = "Error opening repository \"" + name.get() + '"';
        throw new MergeException(m, err);
    }

    rw = CodeReviewCommit.newRevWalk(repo);
    rw.sort(RevSort.TOPO);
    rw.sort(RevSort.COMMIT_TIME_DESC, true);
    canMergeFlag = rw.newFlag("CAN_MERGE");

    inserter = repo.newObjectInserter();
}

From source file:GitBackend.GitAPI.java

License:Apache License

private void getCommitByExactDate(Repository repo, Date execDate, String path) {
    RevWalk walk = new RevWalk(repo);
    try {//from  ww w  . j  a va  2  s .  co m
        walk.markStart(walk.parseCommit(repo.resolve(Constants.HEAD)));

        walk.sort(RevSort.COMMIT_TIME_DESC);
        walk.setTreeFilter(PathFilter.create(path));

        for (RevCommit commit : walk) {
            if (commit.getCommitterIdent().getWhen().equals(execDate)) {
                // this is the commit you are looking for
                walk.parseCommit(commit);
                System.out.println("Commit found: " + commit.getName());
                break;
            }
        }
        walk.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:kr.re.ec.grigit.graph.ui.GrigitGraph.java

License:Eclipse Distribution License

@Override
protected RevWalk createWalk() {
    // if (objects)
    // logger.info(CLIText.get().cannotUseObjectsWithGlog);
    final PlotWalk w = new PlotWalk(db);
    w.sort(RevSort.BOUNDARY, true);/*from   ww w  .  j a  v a 2 s .c om*/
    w.sort(RevSort.COMMIT_TIME_DESC, true);
    return w;
}

From source file:kr.re.ec.grigit.graph.ui.RevWalker.java

License:Eclipse Distribution License

void enableDateOrder(final boolean on) {
    enableRevSort(RevSort.COMMIT_TIME_DESC, on);
}

From source file:net.morimekta.gittool.GitTool.java

License:Apache License

public Optional<RevCommit> commitOf(Repository repository, String branch) throws IOException {
    try (RevWalk revWalk = new RevWalk(repository)) {
        ObjectId oid = repository.resolve(refName(branch));
        revWalk.markStart(revWalk.parseCommit(oid));
        revWalk.sort(RevSort.COMMIT_TIME_DESC);
        return Optional.ofNullable(ImmutableList.copyOf(revWalk).get(0));
    }//from   w w  w.ja va  2s. c om
}

From source file:org.apache.maven.scm.provider.git.jgit.command.JGitUtils.java

License:Apache License

/**
 * Get a list of commits between two revisions.
 *
 * @param repo     the repository to work on
 * @param sortings sorting/*from   w  w  w.  ja v  a  2  s .  c om*/
 * @param fromRev  start revision
 * @param toRev    if null, falls back to head
 * @param fromDate from which date on
 * @param toDate   until which date
 * @param maxLines max number of lines
 * @return a list of commits, might be empty, but never <code>null</code>
 * @throws IOException
 * @throws MissingObjectException
 * @throws IncorrectObjectTypeException
 */
public static List<RevCommit> getRevCommits(Repository repo, RevSort[] sortings, String fromRev, String toRev,
        final Date fromDate, final Date toDate, int maxLines)
        throws IOException, MissingObjectException, IncorrectObjectTypeException {

    List<RevCommit> revs = new ArrayList<RevCommit>();
    RevWalk walk = new RevWalk(repo);

    ObjectId fromRevId = fromRev != null ? repo.resolve(fromRev) : null;
    ObjectId toRevId = toRev != null ? repo.resolve(toRev) : null;

    if (sortings == null || sortings.length == 0) {
        sortings = new RevSort[] { RevSort.TOPO, RevSort.COMMIT_TIME_DESC };
    }

    for (final RevSort s : sortings) {
        walk.sort(s, true);
    }

    if (fromDate != null && toDate != null) {
        //walk.setRevFilter( CommitTimeRevFilter.between( fromDate, toDate ) );
        walk.setRevFilter(new RevFilter() {
            @Override
            public boolean include(RevWalk walker, RevCommit cmit) throws StopWalkException,
                    MissingObjectException, IncorrectObjectTypeException, IOException {
                int cmtTime = cmit.getCommitTime();

                return (cmtTime >= (fromDate.getTime() / 1000)) && (cmtTime <= (toDate.getTime() / 1000));
            }

            @Override
            public RevFilter clone() {
                return this;
            }
        });
    } else {
        if (fromDate != null) {
            walk.setRevFilter(CommitTimeRevFilter.after(fromDate));
        }
        if (toDate != null) {
            walk.setRevFilter(CommitTimeRevFilter.before(toDate));
        }
    }

    if (fromRevId != null) {
        RevCommit c = walk.parseCommit(fromRevId);
        c.add(RevFlag.UNINTERESTING);
        RevCommit real = walk.parseCommit(c);
        walk.markUninteresting(real);
    }

    if (toRevId != null) {
        RevCommit c = walk.parseCommit(toRevId);
        c.remove(RevFlag.UNINTERESTING);
        RevCommit real = walk.parseCommit(c);
        walk.markStart(real);
    } else {
        final ObjectId head = repo.resolve(Constants.HEAD);
        if (head == null) {
            throw new RuntimeException("Cannot resolve " + Constants.HEAD);
        }
        RevCommit real = walk.parseCommit(head);
        walk.markStart(real);
    }

    int n = 0;
    for (final RevCommit c : walk) {
        n++;
        if (maxLines != -1 && n > maxLines) {
            break;
        }

        revs.add(c);
    }
    return revs;
}

From source file:org.eclipse.egit.internal.relengtools.ShowInfoHandler.java

License:Open Source License

public static RevCommit getLatestCommitFor(RepositoryMapping mapping, Repository repo, IProject project)
        throws Exception {
    final RevWalk walk = new RevWalk(repo);
    walk.reset();/*  www.  j a  v  a 2s.c  o m*/
    walk.sort(RevSort.TOPO, true);
    walk.sort(RevSort.COMMIT_TIME_DESC, true);
    walk.setTreeFilter(
            AndTreeFilter.create(TreeFilter.ANY_DIFF, PathFilter.create(mapping.getRepoRelativePath(project))));
    final ObjectId start = repo.resolve(Constants.HEAD);
    walk.markStart(walk.parseCommit(start));

    // I should only be able to see commits that contain files
    // where project is a path prefix
    final RevCommit commit = walk.next();
    return commit;
}

From source file:org.eclipse.egit.ui.internal.actions.TagAction.java

License:Open Source License

private RevWalk getRevCommits() {
    RevWalk revWalk = new RevWalk(repo);
    revWalk.sort(RevSort.COMMIT_TIME_DESC, true);
    revWalk.sort(RevSort.BOUNDARY, true);

    try {//www.  j a  va 2  s  . c  o m
        AnyObjectId headId = repo.resolve(Constants.HEAD);
        if (headId != null)
            revWalk.markStart(revWalk.parseCommit(headId));
    } catch (IOException e) {
        ErrorDialog.openError(getShell(), UIText.TagAction_errorDuringTagging,
                UIText.TagAction_errorWhileGettingRevCommits,
                new Status(IStatus.ERROR, Activator.getPluginId(), e.getMessage(), e));
    }

    return revWalk;
}