/** * Create a filter around many filters, all of which must match. * * @param list * list of filters to match against. Must contain at least 2 * filters. * @return a filter that must match all input filters. */ public static TreeFilter create(Collection<TreeFilter> list) { if (list.size() < 2) throw new IllegalArgumentException(JGitText.get().atLeastTwoFiltersNeeded); final TreeFilter[] subfilters = new TreeFilter[list.size()]; list.toArray(subfilters); if (subfilters.length == 2) return create(subfilters[0], subfilters[1]); return new List(subfilters); }
/** * Create a filter around many filters, all of which must match. * * @param list * list of filters to match against. Must contain at least 2 * filters. * @return a filter that must match all input filters. */ public static TreeFilter create(TreeFilter[] list) { if (list.length == 2) return create(list[0], list[1]); if (list.length < 2) throw new IllegalArgumentException(JGitText.get().atLeastTwoFiltersNeeded); final TreeFilter[] subfilters = new TreeFilter[list.length]; System.arraycopy(list, 0, subfilters, 0, list.length); return new List(subfilters); }
private static TreeFilter getDiffTreeFilterFor(AbstractTreeIterator a, AbstractTreeIterator b) { if (a instanceof DirCacheIterator && b instanceof WorkingTreeIterator) return new IndexDiffFilter(0, 1); if (a instanceof WorkingTreeIterator && b instanceof DirCacheIterator) return new IndexDiffFilter(1, 0); TreeFilter filter = TreeFilter.ANY_DIFF; if (a instanceof WorkingTreeIterator) filter = AndTreeFilter.create(new NotIgnoredFilter(0), filter); if (b instanceof WorkingTreeIterator) filter = AndTreeFilter.create(new NotIgnoredFilter(1), filter); return filter; }
indexDiffFilter = new IndexDiffFilter(INDEX, WORKDIR); filters.add(indexDiffFilter); treeWalk.setFilter(AndTreeFilter.create(filters)); fileModes.clear(); while (treeWalk.next()) {
private static TreeFilter orDiff(final TreeFilter[] filters) { final TreeFilter filter; if (filters.length > 1) filter = OrTreeFilter.create(filters); else filter = filters[0]; return AndTreeFilter.create(filter, ANY_DIFF); }
checkCallable(); if (pathFilters.size() > 0) walk.setTreeFilter(AndTreeFilter.create( PathFilterGroup.create(pathFilters), TreeFilter.ANY_DIFF)); if (skip > -1 && maxCount > -1)
/** * Create a filter around many filters, all of which must match. * * @param list * list of filters to match against. Must contain at least 2 * filters. * @return a filter that must match all input filters. */ public static TreeFilter create(Collection<TreeFilter> list) { if (list.size() < 2) throw new IllegalArgumentException(JGitText.get().atLeastTwoFiltersNeeded); final TreeFilter[] subfilters = new TreeFilter[list.size()]; list.toArray(subfilters); if (subfilters.length == 2) return create(subfilters[0], subfilters[1]); return new List(subfilters); }
/** * Create a filter around many filters, all of which must match. * * @param list * list of filters to match against. Must contain at least 2 * filters. * @return a filter that must match all input filters. */ public static TreeFilter create(final Collection<TreeFilter> list) { if (list.size() < 2) throw new IllegalArgumentException(JGitText.get().atLeastTwoFiltersNeeded); final TreeFilter[] subfilters = new TreeFilter[list.size()]; list.toArray(subfilters); if (subfilters.length == 2) return create(subfilters[0], subfilters[1]); return new List(subfilters); }
treeWalk.getTree(2, FileTreeIterator.class) .setDirCacheIterator(treeWalk, 1); treeWalk.setFilter(AndTreeFilter.create(new SkipWorkTreeFilter( 1), new IndexDiffFilter(1, 2)));
/** * Create a filter around many filters, all of which must match. * * @param list * list of filters to match against. Must contain at least 2 * filters. * @return a filter that must match all input filters. */ public static TreeFilter create(final TreeFilter[] list) { if (list.length == 2) return create(list[0], list[1]); if (list.length < 2) throw new IllegalArgumentException(JGitText.get().atLeastTwoFiltersNeeded); final TreeFilter[] subfilters = new TreeFilter[list.length]; System.arraycopy(list, 0, subfilters, 0, list.length); return new List(subfilters); }
/** * Create a filter around many filters, all of which must match. * * @param list * list of filters to match against. Must contain at least 2 * filters. * @return a filter that must match all input filters. */ public static TreeFilter create(TreeFilter[] list) { if (list.length == 2) return create(list[0], list[1]); if (list.length < 2) throw new IllegalArgumentException(JGitText.get().atLeastTwoFiltersNeeded); final TreeFilter[] subfilters = new TreeFilter[list.length]; System.arraycopy(list, 0, subfilters, 0, list.length); return new List(subfilters); }
private static TreeFilter getDiffTreeFilterFor(AbstractTreeIterator a, AbstractTreeIterator b) { if (a instanceof DirCacheIterator && b instanceof WorkingTreeIterator) return new IndexDiffFilter(0, 1); if (a instanceof WorkingTreeIterator && b instanceof DirCacheIterator) return new IndexDiffFilter(1, 0); TreeFilter filter = TreeFilter.ANY_DIFF; if (a instanceof WorkingTreeIterator) filter = AndTreeFilter.create(new NotIgnoredFilter(0), filter); if (b instanceof WorkingTreeIterator) filter = AndTreeFilter.create(new NotIgnoredFilter(1), filter); return filter; }
/** * Create a diff filter that affects any of the given paths * * @param paths * @return tree filter for diffs affecting given paths */ public static TreeFilter or(final String... paths) { if (paths == null) throw new IllegalArgumentException(Assert.formatNotNull("Paths")); if (paths.length == 0) throw new IllegalArgumentException(Assert.formatNotEmpty("Paths")); return AndTreeFilter.create(group(paths), ANY_DIFF); }
private static TreeFilter getDiffTreeFilterFor(AbstractTreeIterator a, AbstractTreeIterator b) { if (a instanceof DirCacheIterator && b instanceof WorkingTreeIterator) return new IndexDiffFilter(0, 1); if (a instanceof WorkingTreeIterator && b instanceof DirCacheIterator) return new IndexDiffFilter(1, 0); TreeFilter filter = TreeFilter.ANY_DIFF; if (a instanceof WorkingTreeIterator) filter = AndTreeFilter.create(new NotIgnoredFilter(0), filter); if (b instanceof WorkingTreeIterator) filter = AndTreeFilter.create(new NotIgnoredFilter(1), filter); return filter; }
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 public static List<RevCommit> getFileRevisions(String path, AnyObjectId start, int skip, int limit, ObjectReader reader) throws IOException { path = normalizeNodePath(path); TreeFilter filter = AndTreeFilter.create(PathFilterGroup.createFromStrings(path), ANY_DIFF); return getHistory(start, skip, limit, filter, reader); }
@Nonnull public static List<RevCommit> getFileRevisions(String path, AnyObjectId start, int skip, int limit, ObjectReader reader) throws IOException { path = normalizeNodePath(path); TreeFilter filter = AndTreeFilter.create(PathFilterGroup.createFromStrings(path), ANY_DIFF); return getHistory(start, skip, limit, filter, reader); }
private TreeFilter createTreeFilter() { if (filterResources == null) return TreeFilter.ALL; List<TreeFilter> filters = new ArrayList<TreeFilter>(); for (IResource resource : filterResources) { RepositoryMapping mapping = RepositoryMapping.getMapping(resource); if (mapping != null) { DiffConfig diffConfig = mapping.getRepository().getConfig().get(DiffConfig.KEY); String path = mapping.getRepoRelativePath(resource); if (path != null && !"".equals(path)) { //$NON-NLS-1$ if (resource.getType() == IResource.FILE) filters.add(FollowFilter.create(path, diffConfig)); else filters.add(AndTreeFilter.create( PathFilter.create(path), TreeFilter.ANY_DIFF)); } } } if (filters.isEmpty()) return TreeFilter.ALL; else if (filters.size() == 1) return filters.get(0); else return OrTreeFilter.create(filters); } }