public static void iterate(@NotNull VcsDirtyScope scope, @NotNull Processor<? super FilePath> iterator) {
    Project project = scope.getProject();
    if (project.isDisposed()) return;

    for (FilePath dir : scope.getRecursivelyDirtyDirectories()) {
      final VirtualFile vFile = dir.getVirtualFile();
      if (vFile != null && vFile.isValid()) {
        iterateVcsRoot(project, vFile, iterator);
      }
    }

    for (FilePath file : scope.getDirtyFilesNoExpand()) {
      iterator.process(file);
      final VirtualFile vFile = file.getVirtualFile();
      if (vFile != null && vFile.isValid() && vFile.isDirectory()) {
        for (VirtualFile child : vFile.getChildren()) {
          iterator.process(VcsUtil.getFilePath(child));
        }
      }
    }
  }
public static void iterate(@NotNull VcsDirtyScope scope, @NotNull Processor<? super FilePath> iterator)