MERCURIAL

The syncbox

I move between a couple different computers regularly: my old 12” PowerBook and the 15” MacBook Pro my job provides me with. Like all multi-computer users I periodically bump up against the challenges of what files (and versions) are where, especially when there’s work in progress. To further complicate things, I also have an extra laptop running Ubuntu. And sometimes I just SSH to my web server from somebody else’s machine.

Branching and merging in real life

At work I still mostly use Subversion for version control. Its main selling points: stable, performs as expected, integrates nicely with Trac, holds all our old stuff (legacy inertia). Note that “pain-free branching and merging” is not on that list. (And don’t give me the old “branching is cheap in svn!” line. It’s not about the branching, it’s about the merging.) A couple years ago I started also using Mercurial and plan to eventually replace svn with it entirely.

History lesson

This has been going around – give people a peek at what commands you run most often. I ran this on my server, where I spend most of my shell time: > history|awk '{a[$2]++} END{for(i in a){printf "%5d\t%s\n",a[i],i}}'|sort -rn|head 103 hg 81 cd 67 ll 29 ./manage.py 23 ab 21 re-ap 17 hgup 14 svn 13 cat 12 ls Notes: Mercurial has pushed my use of Subversion way down.

Mercurial 1.0 released

Very cool news – Mercurial 1.0 has been released. See the announcement and the site for details. There are no earth-shaking individual changes in this release, just a long list of improvements that have been made since 0.9.5. One of the new features is easy_install friendliness, so assuming you’ve got that installed, getting the new version of Mercurial is as easy as: $ sudo easy_install http://www.selenic.com/mercurial/release/mercurial-1.0.tar.gz If you want to be kind to the server, since it’s getting pounded today, you can do this instead in order to make your request via the Coral CDN:

Django Mercurial mirror tweaks

Update: The mirror described in this post has been retired. Django source now lives on GitHub. I really enjoyed my participation in the last Django sprint, but prior commitments prevent me from participating in the PyCon Django sprint that begins today. On the chance that people may be taking advantage of my Mercurial mirror of the Django repository, I made a couple tweaks: Increased the update frequency from hourly to every 15 minutes Added downloadable gzipped tarballs (about 2.

A Mercurial mirror of Django's Subversion repository

Update: The mirror described in this post has been retired. Django source now lives on GitHub. Just wanted to post a quick note that I’m now publishing an experimental Mercurial mirror of the Django source code repository, including all tags and branches and even the djangoproject.com website source itself. Tom Tobin at The Onion has been maintaining a similar mirror of Django trunk for a while (and very helpfully answered some of my questions in IRC), but I wanted to do the whole tree.

Mercurial: good enough for now

Lately I’ve been trying out the Mercurial distributed version control system on some real projects. I currently use Subversion for production stuff at work. It’s reliable, has great Trac integration, and is most likely to be known by other developers. (In fact, we hired a new person at work this fall who will be helping me with web development, and it turned out that Subversion was what he was familiar with.