checkCallable(); if (pathFilters.size() > 0) walk.setTreeFilter(AndTreeFilter.create( PathFilterGroup.create(pathFilters), TreeFilter.ANY_DIFF)); if (skip > -1 && maxCount > -1)
List<Commit> commits = new ArrayList<Commit>(); RevWalk revWalk = new RevWalk(repository); revWalk.setTreeFilter( AndTreeFilter.create( PathFilterGroup.createFromStrings(<relative path in question>), TreeFilter.ANY_DIFF) ); RevCommit rootCommit = revWalk.parseCommit(repository.resolve(Constants.HEAD)); revWalk.sort(RevSort.COMMIT_TIME_DESC); revWalk.markStart(rootCommit); for (RevCommit revCommit : revWalk) { commits.add(new GitCommit(getRepository(), revCommit)); }
private void filterOutOtherModulesChanges(String modulePath, List<String> childModules, RevWalk walk) { boolean isRootModule = ".".equals(modulePath); boolean isMultiModuleProject = !isRootModule || !childModules.isEmpty(); List<TreeFilter> treeFilters = new ArrayList<TreeFilter>(); treeFilters.add(TreeFilter.ANY_DIFF); if (isMultiModuleProject) { if (!isRootModule) { // for sub-modules, look for changes only in the sub-module path... treeFilters.add(PathFilter.create(modulePath)); } // ... but ignore any sub-modules of the current sub-module, because they can change independently of the current module for (String childModule : childModules) { String path = isRootModule ? childModule : modulePath + "/" + childModule; treeFilters.add(PathFilter.create(path).negate()); } } TreeFilter treeFilter = treeFilters.size() == 1 ? treeFilters.get(0) : AndTreeFilter.create(treeFilters); walk.setTreeFilter(treeFilter); } }
@Nonnull private static List<RevCommit> getHistory(AnyObjectId start, int skip, int limit, @Nullable TreeFilter filter, ObjectReader reader) throws IOException { List<RevCommit> commits; try(RevWalk rw = new RevWalk(reader)) { rw.markStart(CommitUtils.getCommit(start, reader)); if(filter != null) rw.setTreeFilter(filter); commits = toCommitList(rw, skip, limit); } return commits; }
@Nonnull private static List<RevCommit> getHistory(AnyObjectId start, int skip, int limit, @Nullable TreeFilter filter, ObjectReader reader) throws IOException { List<RevCommit> commits; try(RevWalk rw = new RevWalk(reader)) { rw.markStart(CommitUtils.getCommit(start, reader)); if(filter != null) rw.setTreeFilter(filter); commits = toCommitList(rw, skip, limit); } return commits; }
RevCommit latestCommit = null; String path = "file.txt"; try( RevWalk revWalk = new RevWalk( git.getRepository() ) ) { Ref headRef = git.getRepository().exactRef( Constants.HEAD ); RevCommit headCommit = revWalk.parseCommit( headRef.getObjectId() ); revWalk.markStart( headCommit ); revWalk.sort( RevSort.COMMIT_TIME_DESC ); revWalk.setTreeFilter( AndTreeFilter.create( PathFilter.create( path ), TreeFilter.ANY_DIFF ) ); latestCommit = revWalk.next(); }
private TreeWalk createFileWalker(RevWalk walk, Repository db, List<FilterPath> paths) { final TreeWalk fileWalker = new TreeWalk(db); fileWalker.setRecursive(true); fileWalker.setFilter(TreeFilter.ANY_DIFF); if (store.getBoolean(UIPreferences.RESOURCEHISTORY_FOLLOW_RENAMES) && !paths.isEmpty() && allRegularFiles(paths)) { pathFilters = paths; List<String> selectedPaths = new ArrayList<String>(paths.size()); for (FilterPath filterPath : paths) selectedPaths.add(filterPath.getPath()); fileViewerInterestingPaths = new HashSet<String>(selectedPaths); TreeFilter followFilter = createFollowFilterFor(selectedPaths); walk.setTreeFilter(followFilter); } else if (paths.size() > 0) { pathFilters = paths; List<String> stringPaths = new ArrayList<String>(paths.size()); for (FilterPath p : paths) stringPaths.add(p.getPath()); walk.setTreeFilter(AndTreeFilter.create(PathFilterGroup .createFromStrings(stringPaths), TreeFilter.ANY_DIFF)); fileViewerInterestingPaths = new HashSet<String>(stringPaths); } else { pathFilters = null; walk.setTreeFilter(TreeFilter.ALL); fileViewerInterestingPaths = null; } return fileWalker; }
RevWalk revWalk = new RevWalk( repository ); revWalk.markStart( revWalk.parseCommit( repository.resolve( Constants.HEAD ) ) ); revWalk.setTreeFilter( PathFilter.create( "path/to/file.txt" ) ); revWalk.sort( RevSort.COMMIT_TIME_DESC ); revWalk.sort( RevSort.REVERSE, true ); RevCommit commit = revWalk.next(); ... revWalk.dispose();
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); // Gets parents before children revWalk.sort(RevSort.TOPO, true); revWalk.sort(RevSort.REVERSE, true); revWalk.setRevFilter(RevFilter.ALL); revWalk.setTreeFilter(TreeFilter.ALL); return revWalk; }
walk.markStart(walk .parseCommit(strictResolve(repository, revision))); walk.setTreeFilter(PathFilterUtils.and(path)); return walk.next(); } catch (IOException e) {
private RevWalk buildWalk() throws GitAPIException, IOException { final RevWalk rw = new RevWalk(git.getRepository()); rw.setTreeFilter(TreeFilter.ANY_DIFF); rw.markStart(rw.parseCommit(endRange)); rw.sort(RevSort.TOPO); if (startRange != null) { rw.markUninteresting(rw.parseCommit(startRange)); } return rw; }
/** * Create a newly configured {@link RevWalk} for the repository * * @param repository * @return new {@link RevWalk} */ protected RevWalk createWalk(final Repository repository) { final RevWalk walk = new RevWalk(repository); walk.setRetainBody(true); walk.setRevFilter(commitFilter); walk.setTreeFilter(treeFilter); if (commitFilter instanceof CommitFilter) ((CommitFilter) commitFilter).setRepository(repository); if (treeFilter instanceof BaseTreeFilter) ((BaseTreeFilter) treeFilter).setRepository(repository); if (sort != null) walk.sort(sort); return walk; }
walk.setTreeFilter(AndTreeFilter.create(PathFilter.create(path), TreeFilter.ANY_DIFF));
walk.setTreeFilter(AndTreeFilter.create(PathFilter.create(path), TreeFilter.ANY_DIFF));
DiffConfig.KEY); FollowFilter filter = FollowFilter.create(path, diffConfig); rw.setTreeFilter(filter);
revWalk.setTreeFilter(AndTreeFilter.create(TreeFilter.ANY_DIFF, PathPatternFilter.of(pathPattern)));
walk.setTreeFilter(AndTreeFilter.create(PathFilter.create(repoRelativePath), TreeFilter.ANY_DIFF)); walk.setRevFilter(MaxCountRevFilter.create(checkCommitsCount)); walk.setRetainBody(false);
checkCallable(); if (pathFilters.size() > 0) walk.setTreeFilter(AndTreeFilter.create( PathFilterGroup.create(pathFilters), TreeFilter.ANY_DIFF)); if (skip > -1 && maxCount > -1)
checkCallable(); if (pathFilters.size() > 0) walk.setTreeFilter(AndTreeFilter.create( PathFilterGroup.create(pathFilters), TreeFilter.ANY_DIFF)); if (skip > -1 && maxCount > -1)
RevCommit headCommit = rw.parseCommit(head.getObjectId()); rw.markStart(headCommit); rw.setTreeFilter(AndTreeFilter.create( PathFilter.create(repoRelativePath), TreeFilter.ANY_DIFF));