Martin Langhoff writes:
quoted
If I remember correctly, it was done in the background, and it was done
at least partially _in_ gitk (Tcl/Tk).
I suspect it is doing a whole lot of git-merge-base invocations, which
are rather costly. I don't know of any cheaper way to ask that
question.
There's no git-merge-base involved. Gitk does a
git-rev-list --all --topo-order --parents
and reads the output of that, and then traverses the entire graph
forwards and backwards (in Tcl). (This is after gitk has read the
output of git ls-remote $GIT_DIR, so it knows which commits have
tags.)
Paul.