Checkout the Last Public Revision with Mercurial

By  on  

I've always preferred git over Mercurial (hg) because the feature branch workflow makes organizing code and working off of master very easy. You don't get that with vanilla mercurial -- instead, commits can just sort of apply on top of each other, without much organization. Sometimes mercurial can feel a bit chaotic.

When working on Mozilla's mozilla-central repository (for your beloved Firefox!), I always start new commits off of the latest public commit. "public means it has been merged into mozilla-central, "draft" means it was created locally and is only on my machine.

Getting the last public revision ID required a bit of command line hackery and search so I found a better way to check out the last public revision:

hg checkout -r 'last(public())'

That command is a bit much to remember so I created an alias in my .bash_profile:

alias hgmaster='hg checkout -r “last(public())”’

As with every alias I create, whether a git alias or a bash alias, I wish I had created this sooner -- I'd have saved so much time!

Recent Features

  • By
    fetch API

    One of the worst kept secrets about AJAX on the web is that the underlying API for it, XMLHttpRequest, wasn't really made for what we've been using it for.  We've done well to create elegant APIs around XHR but we know we can do better.  Our effort to...

  • By
    6 Things You Didn’t Know About Firefox OS

    Firefox OS is all over the tech news and for good reason:  Mozilla's finally given web developers the platform that they need to create apps the way they've been creating them for years -- with CSS, HTML, and JavaScript.  Firefox OS has been rapidly improving...

Incredible Demos

  • By
    Dynamically Load Stylesheets Using MooTools 1.2

    Theming has become a big part of the Web 2.0 revolution. Luckily, so too has a higher regard for semantics and CSS standards. If you build your pages using good XHTML code, changing a CSS file can make your website look completely different.

  • By
    Morphing Elements Using MooTools and CSS

    Morphing an element between CSS classes is another great trick the MooTools JavaScript library enables you to do. Morphing isn't the most practical use of MooTools, but it's still a trick at your disposal. Step 1: The XHTML The block of content that will change is...

Discussion

  1. Jeremy

    What do you mean you can’t use the feature branch workflow with Mercurial?

    • I guess branches are different with Mercurial, and that bookmarks don’t feel the same as branching off of master. Could just be me.

  2. glob

    It would be simpler/quicker to instead do:

    hg checkout -r 'last(public())'

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!