HotSpot workflow (original) (raw)

Volker Simonis volker.simonis at gmail.com
Tue Apr 14 12:54:37 UTC 2015


Mercurial Queues (mq) is your friend!

I can not imagine imagine OpenJDK development without the MqExtension [1] and so far I managed to convince everybody to use it who was asking the same question like you :)

With MqExtension you can easily keep an arbitrary number of Mercurial changes in a so called patch queue (it's located under .hg/patches). These patches can be easily and selectively imported into your actual repository ("hg qpush") or backed out again ("hg qpop"). You can also merge several changes in the patch queue into one change with "hg qfold".

My usual wok-flow looks as follows:

hg clone / hg pull -u hg qnew -m "My first local change" first.patch hg qrefresh // "other local changes" will go into first.patch hg qnew -m "My second local change" second.patch

hg qseries // will show the applied changes from the patch queue second.patch first.patch

hg qpop --all // removes all local changes from the repo hg pull -u hg qpush --move first.patch hg qfinish first.patch // removes first.patch from patch queue and makes a 'real' changeset out of it. hg push

You can read [1] for more examples and a complete documentation. In particular you can even version your patch queue!

Regards, Volker

[1] http://mercurial.selenic.com/wiki/MqExtension

On Tue, Apr 14, 2015 at 2:26 PM, Andrew Haley <aph at redhat.com> wrote:

I'm having some practical problems with the HotSpot workflow.

I usually have several patches on the fly at any time, but webrev and Mercurial don't really help. "hg push" and "hg merge" work on the whole repo, not just a changeset, so I've been manually saving changesets and re-merging them into the master tree, which is very error-prone and has led to some mistakes submitting changes. Also, the need to submit a change as a single changeset makes it awkward to commit regularly as I work on a patch; I can't find any way to merge a set of changes into a single changeset and push that. So, what do you do? Do you keep a source tree checked out for every webrev? Do you regularly commit as you work? Am I missing some tricks? Thanks, Andrew.



More information about the hotspot-dev mailing list