JavaScript:New to SpiderMonkey: Difference between revisions

Tidy up the workflow
(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. (You might do this periodically.)
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 jut for you"
  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!
- Overview
  - sharing
  - hgrc file
  - useful plugins
 
 
- patch policy
- commit access
  - checkin needed
- reviewers
- mercurial queues
 
- who are they, which faces in phonebook
- who's in "charge"
- blogs and twitterers, etc
120

edits