in src/main/kotlin/git4ideaClasses/IRGitModel.kt [94:112]
fun canUnite(indices: List<Int>): Boolean {
if (indices.size < 2) {
return false
}
if (indices.any { rows[it].type == Type.NonUnite.UpdateRef }) return false
val root =
when (val element = rows[indices.first()]) {
is Element.Simple -> return true
is Element.UniteRoot -> element
is Element.UniteChild -> element.root
}
indices.drop(1).forEach { index ->
val element = rows[index] as? Element.UniteChild ?: return true
if (element.root !== root) {
return true
}
}
return false
}