void (@NotNull VirtualFile vFile, @NotNull Depth prevDepth) { if (Depth.EMPTY.equals(prevDepth)) return; if (isIgnoredIdeaLevel(vFile)) { myReceiver.processIgnored(getFilePath(vFile)); return; } Depth newDepth = Depth.INFINITY.equals(prevDepth) ? Depth.INFINITY : Depth.EMPTY; VirtualFileVisitor.Option[] options = newDepth.equals(Depth.EMPTY) ? ar(SKIP_ROOT, ONE_LEVEL_DEEP) : new VirtualFileVisitor.Option[0]; visitChildrenRecursively(vFile, new VirtualFileVisitor<Void>(options) { @NotNull @Override public Result visitFileEx(@NotNull VirtualFile file) { if (isIgnoredIdeaLevel(file)) { myReceiver.processIgnored(getFilePath(file)); return SKIP_CHILDREN; } else if (file.isDirectory() && file.findChild(SvnUtil.SVN_ADMIN_DIR_NAME) != null) { myQueue.add(createItem(getFilePath(file), newDepth, true)); return SKIP_CHILDREN; } else { myReceiver.processUnversioned(getFilePath(file)); return CONTINUE; } } }); }