internal fragmentation

a personal journal of hacking, science, and technology

April maintainer update

Wed, 4 May 2011 14:42 by mpm in Uncategorized (link)

Mercurial development in April was quite busy, ending with our 1.9 sprint.

  • Released Mercurial 1.8.2
  • Reviewed and merged 214 changesets
  • Authored 37 changesets
  • 222 mailing list messages
  • Worked on refactoring merge and rebase
  • Worked on threading of our test harness
  • Worked on encoding and revset features
  • 1.9 sprint!
  • GSoC application review
  • Daily office hours

Mercurial 1.9 sprint, day three

Tue, 3 May 2011 23:33 by mpm in Uncategorized (link)

The last day of the sprint was Sunday, but a day without net access, a transatlantic flight, and a full inbox have delayed this update a bit. But this sprint was probably our most productive yet! Sunday was again about 10 hours of solid hacking. We finally shut down at about 8pm after half the team had left for the airport and others were on the verge of collapse from exhaustion.

As the project leader, I spent the bulk of my time in consultation on designs, debugging, code reviews, and merging patches.  This meant that in the whole course of the sprint, I managed to only write a total of 6 patches myself. And on Sunday I was extra-busy, because May 1st meant it was time for me to cut our monthly stable release (1.8.3).

Overall during the sprint, over 150 changesets were merged and a huge amount of exciting new work started at the sprint is still in the works. Highlights from Sunday include:

  • New, much faster changeset discovery protocol
  • PyFlakes-based code tests
  • More progress on new bundle format and lightweight copies
  • Test-suite speedups
  • Big file handling cleanup for PyPy
  • tons of bug fixes

But the real goal of the sprint is to build momentum for our biggest projects. Some of these got a lot of traction over the weekend. The most exciting is the stuff we’ve been discussing under the Liquid Hg banner, which is actually a collection of different features that will allow for painless and safe “evolution” of changesets. Various pieces of this will probably be appearing over the course of the next year.

We’ve been alternating sprints between the US and Europe every two releases, so the next sprint should be somewhere in the US around January 2012 as we prepare for the 2.1 release.

Mercurial 1.9 sprint, day two

Sun, 1 May 2011 02:36 by mpm in Uncategorized (link)

From left to right: Levi, Peter, Benoit, Natosha, Brodie, Patrick, Sune, Nicolas, Timeless, Matt, Dan, Augie, Pierre-Yves, Martin, Henrik, Mads, Alexander, and Kevin


The second day of the sprint was spent in an intense flurry of coding. We started at 9AM and ailed right through to 9PM when we finally stopped for dinner. Edlund’s onsite catering staff had breakfast and lunch on-hand for us.

During the day, I reviewed and merged over 50 changes from sprinters including:

  • improvements to graphlog
  • new ^ and ~ operators and last() function for revset
  • progress on lightweight copies
  • progress on new discovery protocol
  • work on improving case-collision smarts
  • work on PyPy support
  • fixes for Zeroconf support
  • progress on new bundle format
  • performance fix for the branch cache
  • numerous code clean-ups and assorted bug fixes

We’ve got sprint participants from Minneapolis, Helsinki, San Francisco, Århus, Gronigen, New York, Chicago, Paris(2), Zurich (4), and Copenhagen (6!). And we’ve also gotten a steady stream of patches from contributors at home.