Questions about branching in Mercurial
Mark A. Flacy
mflacy at verizon.net
Sat May 5 19:25:43 UTC 2007
On 2007.05.05 09:40, Tim Allen wrote:
> My employer currently uses CVS internally for all its version-control
> needs, and we're now sufficiently annoyed that we're looking for
> a replacement. For the record, our CVS repository is similar to the
> Linux Kernel in terms of number of files and number of change sets,
> however it currently has about 150 branches and nearly 6000 tags.
>
> The branching model we'd like to use runs something like this:
>
> - The trunk contains the latest stable version, usually whatever is in
> production plus any low-risk bugfixes or well-tested and complete
> features (that is, it should be safe to package this branch up and
> roll it out to production at any time).
> - Every time we need to patch production and the trunk is not fit to be
> rolled out (say, if there's complete and stable features we don't
> want to release yet), we branch from the last stable version, apply
> the patch to the branch, and roll it out. These maintenance branches
> should be stored centrally so that when a new patch needs to be
> rolled out, you don't have to figure out who made the last patch six
> months ago so you can pull from their repository.
> - Development is to be done in separate branches until stable, when
> they can be merged into the trunk.
>
> Because of various bad experiences with CVS and developers messing
> around with repositories on the server, I've been avoiding version
> control systems whose solution to centrally-stored branches is
> 'developers should ssh to the server and clone off a new branch there'.
> Hence, I've been concentrating on Mercurial's "named branches" which it
> seems can be administered nicely with "hg push" and "hg pull".
> Unfortunately, named branches aren't documented very well in "hg help",
> and the wiki page isn't much better.
Why do you think that named branches are a better solution than a cloned repository?
More information about the Mercurial
mailing list