6000
It seems to be a month of anniversaries for me.
Yesterday, I was randomly checking how many commits I had in mozilla-central, and the answer was 5999. Now that I've pushed something else, I've now reached my 6000th commit.
This made me go in a small rabbit hole, and I realized more anniversaries are coming:
- My bugzilla.mozilla.org account is going to turn 19 on March 21/22 depending on timezones. Bugzilla itself is saying the account was created in August 2002, but that's a lie. I still have the email I received at account creation:
Received: from mothra.mozilla.org ([207.200.81.216]) by ... id 16oE0n-0003UA-00 for <...>; Fri, 22 Mar 2002 02:38:34 +0100 Received: (from nobody@localhost) by mothra.mozilla.org with � id g2M1eXf26844; Thu, 21 Mar 2002 17:40:33 -0800 (PST) Date: Thu, 21 Mar 2002 17:40:33 -0800 (PST) Message-Id: <200203220140.g2M1eXf26844@mothra.mozilla.org> From: bugzilla-daemon@mozilla.org Subject: mozilla.org Bugzilla Account Information
- The first bug I ever filed will also turn 19 on the same day because I filed it right after opening the account (which is further evidence that the user profile information is bogus).
- The oldest bug I filed and that is still open will turn 15 on March 27.
- My first review (or at least the earliest I could find in mozilla-central) will turn 11 on March 25.
- My application for commit access level 3 will turn 11 on March 30 (but I only actually got access 21 days later).
Interestingly, all the above happened before I joined Mozilla as paid staff, although the latter two happened on the same year that I did join (in September 2010).
As for commits, the earliest commit that is attributed to me as author (and thus the first of the 6000) was in July 2008. It predates my commit access by almost two years. The first commit I pushed myself to mozilla-central was on the same day month I received access. I actually pushed 15 patched at once that day.
My last "checkin-needed" patch was a few days before that, and was landed by Mossop, who is still at Mozilla.
But digging deeper, I was reminded that attribution worked differently before the Mozilla repository moved to Mercurial: the commit message itself would contain "Patch by x" or "p=x". Following this trail, my oldest landed patch seems to have happened in August 2005. This practice actually survived the death of CVS, so there are Mercurial changesets with this pattern that thus don't count in the 6000. The last one of them seems to have been in May 2008. There are probably less than 40 such commits across CVS and Mercurial, though, which would still put the real 6000th somewhere this month.
Now, ignoring the above extra commits, if I look at individual commit one-line summaries, I can see that 5015 of them appear once (as you'd expect), 385 (!) twice, 61 (!!) three times, and EIGHT (!!!) four times. Some patches are just hard to stick. For the curious, those 8 that took 4 attempts are:
- Bug 644608 - Implement full dependencies for expandlibs
- Bug 1431523 - Use docker images for debian package tasks
- Bug 1473786 - Enable LTO on macOS builds
- Bug 1480006 - Enable LTO on Android CI builds
- Bug 1492663 - Upgrade most CI builds to clang 7
- Bug 1531632 - Initialize environment variables before loading libxul
- Bug 1634204 - Upgrade Linux build docker images to Debian 8
- Bug 1643258 - Avoid the use of the __cxa_thread_atexit_impl symbol
Now that I see this list, I can totally see how they could have bounced multiple times.
Those multiple attempts at landing some patches transforms those 6000 commits into 5469 unique commits that either stuck or didn't but never re-landed (I think there are a few of those). That puts the rejection rate slightly below 10% ((6000 - 5469) / 5469 = 9.7%). I would have thought I was on the high end, but a quick and dirty estimate for the entirety of mozilla-central seems to indicate the overall rejection rate is around 10% too. I guess I'm average.
The ten files I touched the most? (not eliminating multiple attempts of landing something)
configure.in
, 342 times.config/rules.mk
, 256 times.old-configure.in
, 251 times.build/moz.configure/toolchain.configure
, 196 times.memory/build/mozjemalloc.cpp
, 189 times.config/config.mk
, 167 times.build/moz.configure/old.configure
, 159 times.python/mozbuild/mozbuild/backend/recursivemake.py
, 154 times.build/moz.configure/old.configure
, 150 times.js/src/configure.in
, 148 times.
So, mostly build system, but also memory allocator.
Total number of files touched? 10510. Only 3929 of them still exist today. I didn't look how many have simply moved around (and are counted multiple times in the total).
2021-03-17 20:02:01+0900