120
edits
(Add Mercurial Queues intro) |
(Tidy up the workflow) |
||
Line 234: | Line 234: | ||
==== Example MQ workflow ==== | ==== Example MQ workflow ==== | ||
Clone the repository to deal with a bug | Clone the repository to deal with a bug: | ||
hg clone http://hg.mozilla.org/tracemonkey | hg clone http://hg.mozilla.org/tracemonkey | ||
Initialize your queue | Initialize your queue: | ||
hg qinit -c | hg qinit -c | ||
Create a new patch, with some name | Create a new patch, with some name: | ||
hg qnew first_attempt | hg qnew first_attempt | ||
Line 248: | Line 248: | ||
Work on the patch, try to fix the bug, test, compile, etc. | Work on the patch, try to fix the bug, test, compile, etc. | ||
Refresh (save your work into the patch) | Refresh (save your work into the patch): | ||
hg qrefresh | hg qrefresh | ||
Line 254: | Line 254: | ||
Repeat a few times. | Repeat a few times. | ||
Rename the patch (because your first name wasn't appliable) | Rename the patch (because your first name wasn't appliable): | ||
hg qrename refactor_the_whatsit | hg qrename refactor_the_whatsit | ||
Create a new patch to try a logically separate part of the same bug | Create a new patch to try a logically separate part of the same bug: | ||
hg qnew rip_out_the_old_thing | hg qnew rip_out_the_old_thing | ||
Line 270: | Line 270: | ||
Combine all the patches into a single patch, which you submit to bugzilla | Combine all the patches into a single patch, which you submit to bugzilla: | ||
hg qpush -a | hg qpush -a | ||
hg qdiff --rev qparent:. > my_wonderful_patch.patch | hg qdiff --rev qparent:. > my_wonderful_patch.patch | ||
Commit the patches to your local patch repository, in case you make a mistake | Commit the patches to your local patch repository, in case you make a mistake (You might do this periodically): | ||
hg qcommit -m "Some message. Doesn't have to be good, this won't be committed to the repository, it's | hg qcommit -m "Some message. Doesn't have to be good, this won't be committed to the repository, it's just for you" | ||
Go back to the old patches and fiddle with them based on feedback | Go back to the old patches and fiddle with them based on feedback: | ||
hg qpop | hg qpop | ||
Line 285: | Line 285: | ||
etc | etc | ||
There are some more complex techniques that we won't go into in detail. You can enable only some patches using qguard and qselect, and you can reorder the patches by manually editing the .hg/patches/series file. But be careful! | |||
edits