Example usage for org.eclipse.jgit.revwalk.filter RevFilter ALL

List of usage examples for org.eclipse.jgit.revwalk.filter RevFilter ALL

Introduction

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

Prototype

RevFilter ALL

To view the source code for org.eclipse.jgit.revwalk.filter RevFilter ALL.

Click Source Link

Document

Default filter that always returns true (thread safe).

Usage

From source file:com.verigreen.jgit.JGitOperator.java

License:Apache License

boolean isRefBehind(Ref behind, Ref tracking) throws IOException {
    RevWalk walk = new RevWalk(_git.getRepository());
    try {/*from   w  w  w  . ja v a  2s .c  om*/
        RevCommit behindCommit = walk.parseCommit(behind.getObjectId());
        RevCommit trackingCommit = walk.parseCommit(tracking.getObjectId());
        walk.setRevFilter(RevFilter.MERGE_BASE);
        walk.markStart(behindCommit);
        walk.markStart(trackingCommit);
        RevCommit mergeBase = walk.next();
        walk.reset();
        walk.setRevFilter(RevFilter.ALL);
        int aheadCount = RevWalkUtils.count(walk, behindCommit, mergeBase);
        int behindCount = RevWalkUtils.count(walk, trackingCommit, mergeBase);

        return behindCount > aheadCount ? true : false;
    } catch (Throwable e) {
        throw new RuntimeException(String.format("Failed to check if [%s] behind [%s]", behind, tracking), e);
    } finally {
        walk.dispose();
    }
}

From source file:jetbrains.buildServer.buildTriggers.vcs.git.GitMergeSupport.java

License:Apache License

@NotNull
private ObjectId rebase(@NotNull GitVcsRoot gitRoot, @NotNull Repository db, @NotNull RevCommit srcCommit,
        @NotNull RevCommit dstCommit) throws IOException, MergeFailedException {
    RevWalk walk = new RevWalk(db);
    try {/*w  w w  .j  a v a 2 s. co  m*/
        RevCommit src = walk.parseCommit(srcCommit);
        RevCommit dst = walk.parseCommit(dstCommit);
        walk.markStart(src);
        walk.markStart(dst);
        walk.setRevFilter(RevFilter.MERGE_BASE);
        RevCommit base = walk.next();

        Map<ObjectId, RevCommit> tree2commit = new HashMap<ObjectId, RevCommit>();
        RevCommit c;

        if (base != null) {
            walk.reset();
            walk.setRevFilter(RevFilter.ALL);
            walk.markStart(dst);
            walk.markUninteresting(base);
            while ((c = walk.next()) != null) {
                tree2commit.put(c.getTree().getId(), c);
            }
        }

        walk.reset();
        walk.markStart(src);
        walk.markUninteresting(dst);
        walk.sort(RevSort.TOPO);
        walk.sort(RevSort.REVERSE);

        Map<RevCommit, RevCommit> orig2rebased = new HashMap<RevCommit, RevCommit>();
        List<RevCommit> toRebase = new ArrayList<RevCommit>();
        while ((c = walk.next()) != null) {
            ObjectId treeId = c.getTree().getId();
            RevCommit existing = tree2commit.get(treeId);
            if (existing != null) {
                orig2rebased.put(c, existing);
            } else {
                if (c.getParentCount() > 1) {
                    throw new MergeFailedException(asList("Rebase of merge commits is not supported"));
                } else {
                    toRebase.add(c);
                }
            }
        }

        orig2rebased.put(toRebase.get(0).getParent(0), dstCommit);
        ObjectInserter inserter = db.newObjectInserter();
        for (RevCommit commit : toRebase) {
            RevCommit p = commit.getParent(0);
            RevCommit b = orig2rebased.get(p);
            ObjectId rebased = rebaseCommit(gitRoot, db, inserter, commit, b);
            orig2rebased.put(commit, walk.parseCommit(rebased));
        }

        return orig2rebased.get(toRebase.get(toRebase.size() - 1));
    } finally {
        walk.release();
    }
}

From source file:org.ajoberstar.reckon.core.git.GitInventorySupplier.java

License:Apache License

private TaggedVersion findBase(RevWalk walk, RevCommit head, Stream<TaggedVersion> versions)
        throws IOException {
    walk.reset();// w  w w.  j av a 2 s  .  c o m
    walk.setRevFilter(RevFilter.ALL);
    walk.markStart(head);

    Map<RevCommit, List<TaggedVersion>> versionsByCommit = versions
            .collect(Collectors.groupingBy(TaggedVersion::getCommit));

    Stream.Builder<List<TaggedVersion>> builder = Stream.builder();

    for (RevCommit commit : walk) {
        List<TaggedVersion> matches = versionsByCommit.get(commit);
        if (matches != null) {
            // Parents can't be "nearer". Exclude them to avoid extra walking.
            for (RevCommit parent : commit.getParents()) {
                walk.markUninteresting(parent);
            }
            builder.accept(matches);
        }
    }

    return builder.build().flatMap(List::stream).max(Comparator.comparing(TaggedVersion::getVersion))
            .orElse(new TaggedVersion(Versions.VERSION_0, null));
}

From source file:org.ajoberstar.reckon.core.git.GitInventorySupplier.java

License:Apache License

private Optional<Version> findParallel(RevWalk walk, RevCommit head, TaggedVersion candidate,
        Set<RevCommit> tagged) {
    try {// w  ww.j a v  a 2 s. co m
        walk.reset();
        walk.setRevFilter(RevFilter.MERGE_BASE);
        walk.markStart(head);
        walk.markStart(candidate.getCommit());

        RevCommit mergeBase = walk.next();

        walk.reset();
        walk.setRevFilter(RevFilter.ALL);
        boolean taggedSinceMergeBase = RevWalkUtils.find(walk, head, mergeBase).stream()
                .filter(tagged::contains).findAny().isPresent();

        if (mergeBase != null && !taggedSinceMergeBase && !mergeBase.equals(head)
                && !mergeBase.equals(candidate.getCommit())) {
            return Optional.of(Versions.getNormal(candidate.getVersion()));
        } else {
            return Optional.empty();
        }
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
}

From source file:org.eclipse.egit.gitflow.op.GitFlowOperation.java

License:Open Source License

private int getAheadOfDevelopCount(String branchName) throws IOException {
    String parentBranch = repository.getConfig().getDevelop();

    Ref develop = repository.findBranch(parentBranch);
    Ref branch = repository.findBranch(branchName);

    RevWalk walk = new RevWalk(repository.getRepository());

    RevCommit branchCommit = walk.parseCommit(branch.getObjectId());
    RevCommit developCommit = walk.parseCommit(develop.getObjectId());

    RevCommit mergeBase = findCommonBase(walk, branchCommit, developCommit);

    walk.reset();//from w ww.  j  a va 2  s.  c om
    walk.setRevFilter(RevFilter.ALL);
    int aheadCount = RevWalkUtils.count(walk, branchCommit, mergeBase);

    return aheadCount;
}

From source file:org.jboss.tools.openshift.egit.core.EGitUtils.java

License:Open Source License

private static boolean isNonTrackingBranchAhead(Repository repo, String remote, IProgressMonitor monitor)
        throws URISyntaxException, InvocationTargetException, IOException {
    RemoteConfig remoteConfig = new RemoteConfig(repo.getConfig(), remote);
    FetchResult fetchResult = fetch(remoteConfig, repo, monitor);
    Ref ref = fetchResult.getAdvertisedRef(Constants.HEAD);
    if (ref == null) {
        return false;
    }/*from w w  w .  j a  va  2  s  .com*/
    Ref currentBranchRef = repo.getRef(repo.getBranch());

    RevWalk walk = new RevWalk(repo);
    RevCommit localCommit = walk.parseCommit(currentBranchRef.getObjectId());
    RevCommit trackingCommit = walk.parseCommit(ref.getObjectId());
    walk.setRevFilter(RevFilter.MERGE_BASE);
    walk.markStart(localCommit);
    walk.markStart(trackingCommit);
    RevCommit mergeBase = walk.next();
    walk.reset();
    walk.setRevFilter(RevFilter.ALL);
    int aheadCount = RevWalkUtils.count(walk, localCommit, mergeBase);

    return aheadCount > 0;
}

From source file:org.nbgit.ui.log.SearchExecutor.java

License:Open Source License

private void setupRevFilter(RepositoryRevision.Walk walk) {
    RevFilter filter = walk.getRevFilter();

    if (filterUsername) {
        RevFilter author = AuthorRevFilter.create(criteria.getUsername());

        if (filter == RevFilter.ALL) {
            filter = author;//from   ww  w . ja v a2 s .c  om
        } else {
            filter = AndRevFilter.create(filter, author);
        }
    }

    if (filterMessage) {
        RevFilter message = MessageRevFilter.create(criteria.getCommitMessage());
        if (filter == RevFilter.ALL) {
            filter = message;
        } else {
            filter = AndRevFilter.create(filter, message);
        }
    }

    walk.setRevFilter(filter);
}

From source file:org.uberfire.java.nio.fs.jgit.util.commands.SubdirectoryClone.java

License:Apache License

private RevWalk createRevWalk(final Repository repository, final ObjectReader reader)
        throws MissingObjectException, IncorrectObjectTypeException, IOException {
    final RevWalk revWalk = new RevWalk(reader);
    final List<RevCommit> branchTips = getBranchCommits(repository, revWalk);
    // So that we traverse all branch histories at once
    revWalk.markStart(branchTips);//  w  w w  . j a v a 2s.co  m

    // Gets parents before children
    revWalk.sort(RevSort.TOPO, true);
    revWalk.sort(RevSort.REVERSE, true);

    revWalk.setRevFilter(RevFilter.ALL);
    revWalk.setTreeFilter(TreeFilter.ALL);

    return revWalk;
}