Example usage for org.eclipse.jgit.revwalk.filter SkipRevFilter create

List of usage examples for org.eclipse.jgit.revwalk.filter SkipRevFilter create

Introduction

In this page you can find the example usage for org.eclipse.jgit.revwalk.filter SkipRevFilter create.

Prototype

public static RevFilter create(int skip) 

Source Link

Document

Create a new skip filter.

Usage

From source file:com.tasktop.c2c.server.scm.service.GitBrowseUtil.java

License:Open Source License

public static List<Commit> getLog(Repository r, String revision, String path, Region region)
        throws IOException {
    if (path.startsWith("/")) {
        path = path.substring(1);/*from   w  w  w  . ja v  a 2s  .  c  om*/
    }

    List<Commit> commits = new ArrayList<Commit>();

    ObjectId revId = r.resolve(revision);
    RevWalk walk = new RevWalk(r);

    walk.markStart(walk.parseCommit(revId));

    if (path != null && path.trim().length() != 0) {
        walk.setTreeFilter(AndTreeFilter.create(PathFilterGroup.createFromStrings(path), TreeFilter.ANY_DIFF));
    }

    if (region != null) {
        // if (region.getOffset() > 0 && region.getSize() > 0)
        // walk.setRevFilter(AndRevFilter.create(SkipRevFilter.create(region.getOffset()),
        // MaxCountRevFilter.create(region.getSize())));
        /* else */if (region.getOffset() > 0) {
            walk.setRevFilter(SkipRevFilter.create(region.getOffset()));
        }
        // else if (region.getSize() > 0) {
        // walk.setRevFilter(MaxCountRevFilter.create(region.getSize()));
        // }
    }

    int max = region != null && region.getSize() > 0 ? region.getSize() : -1;

    for (RevCommit revCommit : walk) {
        Commit commit = GitDomain.createCommit(revCommit);
        commit.setRepository(r.getDirectory().getName());
        commits.add(commit);
        if (max != -1) {
            if (max == 0) {
                break;
            }
            max--;
        }
    }

    return commits;
}

From source file:org.eclipse.orion.server.git.jobs.LogCommand.java

License:Eclipse Distribution License

/**
 * Executes the {@code Log} command with all the options and parameters collected by the setter methods (e.g. {@link #add(AnyObjectId)},
 * {@link #not(AnyObjectId)}, ..) of this class. Each instance of this class should only be used for one invocation of the command. Don't call this method
 * twice on an instance.//from   ww  w . j  a v  a2s  .  c  om
 *
 * @return an iteration over RevCommits
 * @throws NoHeadException
 *             of the references ref cannot be resolved
 */
@Override
public Iterable<RevCommit> call() throws GitAPIException, NoHeadException {
    checkCallable();
    ArrayList<RevFilter> filters = new ArrayList<RevFilter>();

    if (pathFilters.size() > 0)
        walk.setTreeFilter(AndTreeFilter.create(PathFilterGroup.create(pathFilters), TreeFilter.ANY_DIFF));

    if (msgFilter != null)
        filters.add(msgFilter);
    if (authorFilter != null)
        filters.add(authorFilter);
    if (committerFilter != null)
        filters.add(committerFilter);
    if (sha1Filter != null)
        filters.add(sha1Filter);
    if (dateFilter != null)
        filters.add(dateFilter);
    if (skip > -1)
        filters.add(SkipRevFilter.create(skip));
    if (maxCount > -1)
        filters.add(MaxCountRevFilter.create(maxCount));
    RevFilter filter = null;
    if (filters.size() > 1) {
        filter = AndRevFilter.create(filters);
    } else if (filters.size() == 1) {
        filter = filters.get(0);
    }

    if (filter != null)
        walk.setRevFilter(filter);

    if (!startSpecified) {
        try {
            ObjectId headId = repo.resolve(Constants.HEAD);
            if (headId == null)
                throw new NoHeadException(JGitText.get().noHEADExistsAndNoExplicitStartingRevisionWasSpecified);
            add(headId);
        } catch (IOException e) {
            // all exceptions thrown by add() shouldn't occur and represent
            // severe low-level exception which are therefore wrapped
            throw new JGitInternalException(JGitText.get().anExceptionOccurredWhileTryingToAddTheIdOfHEAD, e);
        }
    }
    setCallable(false);
    return walk;
}