This is a pathological case I don't have time to dig into right now:
git branch -D orphan;
git checkout --orphan orphan &&
git reset --hard &&
touch foo &&
git add foo &&
git commit -m"foo" &&
time git merge-base --is-ancestor master orphan
This takes around 5 seconds on linux.git to return 1. Which is around
the same time it takes to run current master against the first commit in
linux.git:
git merge-base --is-ancestor 1da177e4c3f4 master
This is obviously a pathological case, but maybe we should work slightly
harder on the RHS of and discover that it itself is an orphan commit.
I ran into this while writing a hook where we'd like to do:
git diff $master...topic
Or not, depending on if the topic is an orphan or just something
recently branched off, figured I could use --is-ancestor as on
optimization, and then discovered it's not much of an optimization.