in app/lib/GitChanges.scala [42:53]
private def differentFolders(head: RevCommit, mergeBase: RevCommit, interestingPaths: Set[String])(implicit reader: ObjectReader): Set[String] = {
val (rootPaths, subFolderPaths) = interestingPaths.partition(_ == "/")
val affectedRootPaths = rootPaths.filter(_ => mergeBase.getTree != head.getTree)
val affectedSubFolderPaths = if (subFolderPaths.isEmpty) Set.empty
else {
val treeFilter = AndTreeFilter.create(PathFilterGroup.createFromStrings(subFolderPaths.map(_.stripPrefix("/")).asJava), treeDiffFilter)
walk(mergeBase.getTree, head.getTree)(treeFilter, postOrderTraversal = true).map(_.slashPrefixedPath + "/").toSet.filter(subFolderPaths)
}
affectedRootPaths ++ affectedSubFolderPaths
}