Tuesday, 24 March 2009

Seductive Infrastructure

I've finally started using mq (Mercurial Queues) routinely. It fits the way I work very well. When I have several bugs on the boil I can now easily track the individual patches. I can also easily work with big changes that are factored into multiple patches. When one piece of work depends on other pieces whose patches haven't landed yet, it's so easy to put the prerequisite patches in the queue and keep making progress without getting into patch management hell (or branch merge hell). This is increasing my productivity, and it's fun too.

Another great development is tests on the try-servers. Now you can upload a patch to the try-server farm and it will build the patch on all three tier-1 platforms, produce installation packages, and run all our automated tests on the tier-1 platforms!

What makes it all really seductive is "push-to-try". If you've already got your tree patched with some mq patches, all you have to do is hg push -f ssh://hg.mozilla.org/try/ and eventually all the builds and test results will appear automatically! It couldn't be easier.

The only problem is that the try-servers are now so convenient and useful, they're constantly swamped with developers taking advantage of them :-). That's a good problem to have. As Jonas noted the other day, we don't need a server pool, now we need a server ocean. A success disaster in the making! :-)


  1. My biggest problem with mq (and rebase module as well) is that it "forgets" relations between files. So if you rename a file and push that patch out of the repository with mq (or when rebasing), when that patch is added back you will have a removed and an added file, without any relationship between them. Great way to make a mess out of your repository.

  2. I wonder what you have been using instead of mq till now.
    Can't wait until Ubuntu offers Mercurial 1.2, which can simply rebase a mq patch queue instead of manually merging it, which causes problems quite often.

  3. Hi, I know its not the best place to ask it, but...
    How is going chronicle recorder development?