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
}