/** * Determines all files and folders that belong to a given project and adds them to the supplied * Collection. * * @param filteredFiles destination collection of Files * @param project project to examine */ public static void addProjectFiles( Collection filteredFiles, Collection rootFiles, Collection rootFilesExclusions, Project project) { FileStatusCache cache = CvsVersioningSystem.getInstance().getStatusCache(); Sources sources = ProjectUtils.getSources(project); SourceGroup[] sourceGroups = sources.getSourceGroups(Sources.TYPE_GENERIC); for (int j = 0; j < sourceGroups.length; j++) { SourceGroup sourceGroup = sourceGroups[j]; FileObject srcRootFo = sourceGroup.getRootFolder(); File rootFile = FileUtil.toFile(srcRootFo); try { getCVSRootFor(rootFile); } catch (IOException e) { // the folder is not under a versioned root continue; } rootFiles.add(rootFile); boolean containsSubprojects = false; FileObject[] rootChildren = srcRootFo.getChildren(); Set projectFiles = new HashSet(rootChildren.length); for (int i = 0; i < rootChildren.length; i++) { FileObject rootChildFo = rootChildren[i]; if (CvsVersioningSystem.FILENAME_CVS.equals(rootChildFo.getNameExt())) continue; File child = FileUtil.toFile(rootChildFo); // #67900 Added special treatment for .cvsignore files if (sourceGroup.contains(rootChildFo) || CvsVersioningSystem.FILENAME_CVSIGNORE.equals(rootChildFo.getNameExt())) { // TODO: #60516 deep scan is required here but not performed due to performace reasons projectFiles.add(child); } else { int status = cache.getStatus(child).getStatus(); if (status != FileInformation.STATUS_NOTVERSIONED_EXCLUDED) { rootFilesExclusions.add(child); containsSubprojects = true; } } } if (containsSubprojects) { filteredFiles.addAll(projectFiles); } else { filteredFiles.add(rootFile); } } }
public boolean accept(File pathname) { if (CvsVersioningSystem.FILENAME_CVS.equals(pathname.getName())) return false; if (CvsVersioningSystem.FILENAME_CVSIGNORE.equals(pathname.getName())) return true; return SharabilityQuery.getSharability(pathname) != SharabilityQuery.NOT_SHARABLE; }