A complete Mercurial branching strategy (writeup)

Arne Babenhauserheide arne_bab at web.de
Sat Aug 18 08:38:00 UTC 2012


Hi Angel,

Am Mittwoch, 15. August 2012, 10:27:14 schrieb Angel Ezquerra:
> I went through your document, and one thing I missed, is an
> explanation of why you need to merge hotfixes into the tip of stable.

Hm, yes… thanks for catching that.

> Your explanation gives the impression that you only need that
> if/because you want to get those hotfixes on the latest release as
> well. In fact you need to merge because you cannot push a branch that
> has multiple heads. 

Well, you can push it, but it’s impolite. (I assume you mean the footnote for 
very distinct releases)

There is a deeper reason for the merge, though: It records the decision what 
to do with applied changes in future. 

To define this, you merge old releases to each release, into stable and into 
default.

I now added the following to the strategy:

    Merging the releases into each other in order ensures that
    the relationship of the their changes to later changes is
    clear, recorded and will be applied automatically by
    Mercurial in future merges6. Additionally it is considered
    impolite to other developers to keep multiple heads in one
    branch, because with multiple heads other developers do not
    know the canonical tip of the branch which they should use to
    make their changes - or in case of stable, which head they
    should merge to for preparing the next release. This model
    requires one merge per maintained release to create a bugfix
    version of an old release. By adding release branches, you
    remove that overhead by stating clearly, that changes to old
    versions should never affect new versions, except if those
    changes are explicitely merged into the new versions.

> This is another reason for creating "branch
> releases" when you need to do a hot fix.

The reason I see for using branch releases is, that you then state explicitely 
that the changes in the releases are independent. 

Best wishes,
Arne
--
A man in the streets faces a knife.
Two policemen are there it once. They raise a sign:

    “Illegal Scene! Noone may watch this!”

The man gets robbed and stabbed and bleeds to death.
The police had to hold the sign.

…Welcome to Europe, citizen. Censorship is beautiful.

   ( http://draketo.de/stichwort/censorship )


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 316 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20120818/bdccce0d/attachment.asc>


More information about the Mercurial mailing list