The bugs I've been seeing were not consistent, which was annoying...
Listing all merge commits left us with phantom commits showing up due
to merge noise. Leaving out all the merge commits caused us to miss a
load of the older commits. Eureka!
The problem *seems* to be the way that the old CVS commits have been
converted into git commits. Lots of them show up as merge commits due
to the way cvs2git worked. So we *do* need to include merge commits
there. However, we *don't* want to include merge commits for the stuff
that's been committed directly into git after the transition.
So, there's a hacky solution which actually seems to work well! Call
"git log" twice:
* Once on the newer commits, without the merge commits
* Once on the older commits, including merge commits
I've encoded the knowledge of the point where the conversion happened
so we can do this. The results look good, and we seem to have a clean
set of commit hashes all over our history.
There are a few translated files that I'll need to fix after this
change - places where the translators were misled into updating their
translation-check headers due to the old broken behaviour. Sorry! :-/