Very useful article! Thanks for posting it.
Just one nit-picky question though. You mention needing 10 digits to store the short revision, because 0x1fffffff equates to 4,831,838,207. But in fact, 0x1fffffff = 536,870,911, a nine digit number. Interestingly, the 4 billion-ish number you stated is actually 0x11fffffff. I think you added an extra leading one prior to conversion. Am I missing something?