
If you need to test parts of the current development in small chunks, Note that nothing changed in theĪn overview of the branching strategy with maintained releases.

In the Diagram this just adds a merge path from the hotfix Hg ci -m "merged changes from release 1.1" Is a direct result of having real anonymous branching in Mercurial. With this merge-chain you don't need special branches for releases, butĪll changesets are still clearly recorded. If the most recent release is not the head of the stableīranch, you also merge into stable. There you merge the new fix-release and do the same for all
TORTOISEHG TAG VS BOOKMARK UPDATE
There, add a new tag for the fixed release and then update to the next Hotfix, you go back to the old release with hg update tagname, fix Releases, 13 you only need to change the hotfix procedure: When applying a To use the branching model with multiple simultaneously maintained
TORTOISEHG TAG VS BOOKMARK HOW TO
Since we already showed how to do that, we are finished here. Into stable to reach a state from which we could safely do a release. The final action is to have a maintainer do a regular merge of default For more reasons, see the bookmarks footnote 4. With bookmarks you could get trapped on a feature-head which might not be merged to default for quite some time. Note: We use feature branches to ensure that new clones start at a revision which other developers can directly use. Note: To make the final merge of your feature into default easier, you can regularly merge the default branch into the feature branch. It shows your collegues, that they no longer have to keep the feature in mind as soon as they merge the most recent changes from the default branch into their own feature branches. Note: Closing the feature branch hides that branch in the output of hg branches (except when using -closed) to make the repository state lean and simple while still keeping the feature branch information in history. Hg ci -m "merged finished feature x into default" Hg ci -close-branch -m "finished feature x" Hg ci -m "merged feature x into default"` | | summary: merged feature x into default | | summary: merged finished feature x into default The feature branch gives us changesets 9 to 13 (with 10 being an example for an unrelated intermediate commit on default). Once the feature is finished, we merge it into default. The one feature-commit shown here (x) could be an arbitrary number of commits, and as long as you stay in your branch, the development of your colleagues will not disturb your own work. Now we want to do some larger development, so we use a feature branch. Hg ci -m "merged stable into default: ready for more development" Hg ci -m "merge default into stable for release" Userfriendly, simplified release notes would be a good choice. The commit-message you use for the merge to stable will become the description for your tag, so you should choose a good description instead of "merge default into stable for release". To do a regular release, we just merge the default branch into the stable branch and tag the merge. | summary: Added tag v1 for changeset f97ea6e468a1 | | summary: merge stable into default: ready for more development | | summary: merge default into stable for release | | summary: Added tag v2 for changeset 089fb0af2801 | | | summary: merged feature x into default

| | | summary: merged finished feature x into default | | summary: merged default into stable for release | | summary: merged stable into default: ready for more development So just take a glance, take in theīasic structure and then move on for the details. This is the output of a complete example run 9 of the branching model, including all complications you should ever hit. All that follows are a detailed example which goes through all actions one-by-one, adaptions to this workflow and the final summary. Hg up stable hg merge default hg ci -m "(description of the main changes since the last release)" hg tag tagname hg up default hg merge stable hg ci -m "merged stable into default: ready for more development" Hg up stable (edit) hg ci -m "message" hg up default hg merge stable hg ci -m "merge stable into default: ready for more development" Hg branch stable hg tag tagname hg up default hg merge stable hg ci -m "merge stable into default: ready for more development"

commit changes: (edit) hg ci -m "message".Now we can look at all the actions you will ever need to do in this
