Lately I’ve started contributing to Mozilla Firefox with some patches (yay! It’s an awesome project… consider contributing 😉 ). It was a good excuse to practice with Mercurial, the distributed revision control software used by Mozilla. I’m mainly a Git user and I have to admit I was a little puzzled at first and had to adapt to the new workflow.
In this article I will try to answer some of the questions I had during my learning phase. Well, maybe just recapping it for my own use 🙂
How can I create a new patch in the queue?
hg qnew patchname.patch
How can I update the currently active patch with the latest changes to the files?
hg qrefresh
How can I un-apply a patch from the codebase?
hg qpop patchname.patch
How can I un-apply all the patches from the codebase?
hg qpop -a
How can I remove a patch from the patch queue?
hg qpop patchname.patch
hg qremove patchname.patch
How can I sync my local repository if I’ve got some patches applied?
hg qpop -a
hg pull -u
hg qpush -a
How can I move a patch to the top of my patch queue?
hg qpush –move patchname.patch
How can I merge two patches?
hg qgoto firstpatch.patch
hg qfold secondpatch.patch