@NotNull
  public List<Node> getAllNestedWorkingCopies(@NotNull VirtualFile root) {
    LinkedList<Node> result = new LinkedList<>();
    LinkedList<VirtualFile> workItems = new LinkedList<>();

    workItems.add(root);
    while (!workItems.isEmpty()) {
      VirtualFile item = workItems.removeFirst();
      checkCanceled();

      final Node vcsElement = new VcsFileResolver(myVcs, item, root).resolve();
      if (vcsElement != null) {
        result.add(vcsElement);
      }
      else {
        for (VirtualFile child : item.getChildren()) {
          checkCanceled();

          if (child.isDirectory() && myRootIterator.acceptFolderUnderVcs(root, child)) {
            workItems.add(child);
          }
        }
      }
    }
    return result;
  }
@NotNull
  public List<Node> getAllNestedWorkingCopies(@NotNull VirtualFile root)