Random notes from today's discussion with Dscho:

A - B - C - D - G - I \
              X
      \ E - F - H - J - K

In K, the two bases are D and F.

git-merge calls the backend with "<base1> [<base2>…] — <commit1> <commit2> [<commit3>…]"

I got a nice annotated version of git-merge.sh, which is available here.