In large Libre Source software projects, versioned with Mercurial or similar DVCS tools, which of the following is considered to be more conventional:
- Keeping the latest "stable" version of the software in the
default
branch. Tagging each release indefault
so you know which revision got packaged up as a download. Merging patches intodefault
as soon as they are tested. Keeping new features, etc. in named branches to be merged intodefault
on the next release. - Keeping each release in a named branch, or similar. Using
default
to keep bleeding-edge code that's only intended to be run by developers or the very foolhardy.
Or... is there some better pattern of workflow that it widely accepted?