private static int compareDirectories()

in testSrc/org/jetbrains/jps/util/FileUtil.groovy [106:137]


  private static int compareDirectories(File dir1, File dir2, String relativePath) {
    def processed = 0
    Set<String> dir2Files = dir2.listFiles()*.name as Set

    dir1.listFiles().each {File child1 ->
      File child2 = new File(dir2, child1.name)
      if (!child2.exists()) {
        if (!IGNORED.contains(child1.name)) {
          System.out.println("#1: $relativePath/${child1.name}");
        }
      }
      else {
        if (child1.isFile() && child2.isFile()) {
          processed += compareFiles(child1, child2, relativePath + "/" + child1.name)
        }
        else if (child1.isDirectory() && child2.isDirectory()) {
          processed += compareDirectories(child1, child2, relativePath + "/" + child1.name)
        }
        else {
          System.out.println("type mismatch for $relativePath: #1 is ${child1.isDirectory() ? "dir" : "file"}, #2 is ${child2.isDirectory() ? "dir" : "file"}");
        }
      }

      dir2Files.remove(child1.name)
    }
    dir2Files.each {
      if (!IGNORED.contains(it)) {
        System.out.println("#2: $relativePath/$it");
      }
    }
    return processed
  }