Posts tagged: VCS

Transit of Mercurial

I’m quite fond of Mercurial, despite (though perhaps partly because of) using Git daily for the last ten years.

The first DVCS I used was Darcs, which I liked; then I tried Mercurial and liked it even more. That was 2007; I didn’t get my first job in a “Git shop” until 2010.

I’ve always found the Mercurial UX to be more pleasant than Git. Little things like invoking commands with unique left-substring, or seeing inbound or outbound commits with a single memorable command. Less operational complexity and fewer ways to shoot yourself in the foot, but with equivalent power.

261-character git one-liner of the day

I wanted to have a quick way to see what the other team members are doing, and after pillaging a half-dozen SO posts this is what I came up with.

git branch -va --sort=-committerdate --format='%(HEAD) %(color:yellow)%(refname:strip=-1)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))' --color=always

I added it to my git aliases as recent-commits. Sample output:

AC-6929 - e0c57582a - Added sorting to event list - Pat (2 hours ago)
AC-7054 - 0a9c84222 - Updated 'No mentor selected' option - Sam (5 hours ago)
AC-7053 - 337ef4071 - Removed duplicate values in formset - Charlie (6 hours ago)

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. The aspect of Mercurial that made my life better recently is its support for branching and merging.

The iPhone keyboard doesn't suck

This began as a quick reply to a discussion on the Well about a recent posting from John Gruber which links to a hit list from Crackberry.com about the iPhone. Gruber focuses just on the keyboard issue, about which I found I had this to say:

With the built-in spelling correction, I can type close to 30wpm on my iPt keyboard. This is faster than I ever was with Graffiti, which I used for about 8 years and was pretty good at if I say so. Most of the stuff I do with the device doesn’t involve the keyboard, and then I’m really happy not to have a hard keyboard.

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:

A Mercurial mirror of Django's Subversion repository

Update: As of 2012, the primary Django repo is on GitHub. The mirror described in this post has been retired.

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. So I feel vindicated on that last point especially.)