Que tal:
find_branch_root () {
cwd=$PWD
while [ ! -e "$cwd/pom.xml" ] && [ "x$cwd" != x/ ]; do
cwd='dirname "$cwd"'
done
echo "$cwd"
}
Retira diretórios do caminho até que a raiz (/) seja alcançada ou "pom.xml" seja encontrado.