List of usage examples for org.eclipse.jgit.revwalk.filter RevFilter ALL
RevFilter ALL
To view the source code for org.eclipse.jgit.revwalk.filter RevFilter ALL.
Click Source Link
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; }