Mercurial Development Process
Main developer mpm pushes his changes either to the Mercurial main repository or the stable repo (see DeveloperRepos). New features go into the main repo, whereas bugfixes are pushed into stable and pulled and merged into main. So stable is a subset of main. If mpm cuts a new release, he tags and signs it in main and pulls all of the main repo into the stable repo.
Next level are the Mercurial "crew" members (see CrewRepository). These can push into crew and crew-stable repositories. Changes in the crew repo will be pulled by mpm into the main repo and changes in crew-stable into the Mercurial stable repo. Crew members pull and merge mpm's changes from Mercurial main and stable into crew and crew-stable.
Next level are non-crew members. These send patches to the mercurial-devel mailing list for review (see ContributingChanges). Accepted patches are rebased and pushed by a crew member to either the crew or the crew-stable repo.