Well done to the guys working on Bazaar, the distributed version control system, for their work on the latest release. This one includes a new working tree format that radically cut the time of “bzr status” for larger trees. After installing the release I was prompted to type “bzr upgrade” whenever I used a tree in the old format, and the upgrade was smooth (glad for the backup it makes, but I’ve started deleting those since it all seems rock solid).
There’s a page which shows the relative performance of different releases of Bazaar since 0.8, and I’m impressed that they have cut the time of “bzr status” by 2/3rds since 0.8 which I think was about a year ago.
We picked Bazaar for Launchpad because of it’s excellent cross-platform support and robust handling of renames (even in extreme cases – renaming files inside directories that other people renamed and merging frequently between branches of people who are radically restructuring a big tree). It’s never lost data for me, or blown up in a surprising way, and we use it heavily in a team of about 20 developers.
For the past year I’ve been urging the team to focus on performance and these numbers suggest good results. Robert Collins tells me there’s about another 40% of low hanging fruit on “bzr status”, but for 0.16 Martin Pool says the focus is almost entirely on the smart server so that network operations (push to a remote repo, or merge from a remote branch, or commit to a remote branch) are much more efficient, especially for people on high-latency links. Looking forward to it!