Revision 1 as of 2010-11-15 18:13:11

Clear message

Back to developer page.

Our Mercurial workflow

We use Mercurial, following the task-based workflow explained here. All significant development should be in response to an issue in the tracker, let's say issue1000. Then the usual development process involves two roles, "developer" and "reviewer" (usually Malte), and works as follows:

  1. Developer creates a new branch issue1000 in their own repository, usually branching off the newest revision in default. Note the exact spelling of the branch. Being consistent here allows us to automate some of these steps in the future.

  2. Developer resolves the issue in the branch. (Developer does not close the branch or push the changes to the master repository.)

  3. Developer sets the status of the issue to "reviewing".
  4. Reviewer pulls the issue1000 branch into their own repository.
  5. Reviewer reviews the code. If reviewer is not satisfied, go back to step 2.
  6. Reviewer closes the issue1000 branch.
  7. Reviewer merges the issue1000 branch into the default branch.
  8. Reviewer pushes the issue1000 branch and its merge into the master repository.
  9. Reviewer sets the status of the issue to "resolved".