fun calculateCommonAncestor()

in plugin-bazel/src/main/kotlin/org/jetbrains/bazel/utils/PathUtil.kt [22:43]


fun calculateCommonAncestor(file1: Path, file2: Path): Path? {
  if (file1 == file2) return file1

  var depth1 = file1.nameCount
  var depth2 = file2.nameCount

  var parent1: Path? = file1
  var parent2: Path? = file2
  while (depth1 > depth2 && parent1 != null) {
    parent1 = parent1.parent
    depth1--
  }
  while (depth2 > depth1 && parent2 != null) {
    parent2 = parent2.parent
    depth2--
  }
  while (parent1 != null && parent2 != null && parent1 != parent2) {
    parent1 = parent1.parent
    parent2 = parent2.parent
  }
  return parent1
}