Checkout the Last Public Revision with Mercurial
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!
![I’m an Impostor]()
This is the hardest thing I've ever had to write, much less admit to myself. I've written resignation letters from jobs I've loved, I've ended relationships, I've failed at a host of tasks, and let myself down in my life. All of those feelings were very...
![Serving Fonts from CDN]()
For maximum performance, we all know we must put our assets on CDN (another domain). Along with those assets are custom web fonts. Unfortunately custom web fonts via CDN (or any cross-domain font request) don't work in Firefox or Internet Explorer (correctly so, by spec) though...
![The Simple Intro to SVG Animation]()
This article serves as a first step toward mastering SVG element animation. Included within are links to key resources for diving deeper, so bookmark this page and refer back to it throughout your journey toward SVG mastery.
An SVG element is a special type of DOM element...
![Create a Simple Dojo Accordion]()
Let's be honest: even though we all giggle about how cheap of a thrill JavaScript accordions have become on the web, they remain an effective, useful widget. Lots of content, small amount of space. Dojo's Dijit library provides an incredibly simply method by which you can...
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.
It would be simpler/quicker to instead do:
Thank you Glob! Updated!
You can also use mercurials excellent revsetalias and alias support:
Now You can do
or
I added the revset alias wip as well which shows the changes you haven’t yet pushed to master.
Finally for lightweight branches I highly recommend the evolve extension and just making normal mercurial named branches that you only push to your local mutable (non publishing repository). So long as the branches are in draft you can delete them which will be the case if the repository is non publishing.