[Insight-developers] SimpleITK: adding release branch

Brad King brad.king at kitware.com
Tue Feb 7 10:25:31 EST 2012


On 2/7/2012 10:00 AM, Bradley Lowekamp wrote:
> Hello,
>
> I would like to add a release branch to SimpleITK.
>
> Can I just:
>
> git check -b release v0.4.0b
> git push origin release:release

I updated the itk.org/SimpleITK.git repo permissions to allow a release branch.
I created the branch starting at v0.4.0b.

> Is it documented any place, what the standard way to manage the release branch?

Summary: "release is to master as master is to next"

See the "Managing Releases" section of this article:

   http://www.kitware.com/source/home/post/14

Also read "git help workflows":

   http://schacon.github.com/git/gitworkflows.html

They refer to the release branch as "maint".

> I believe that I understand how to merge topics into
> release. The topic must be branched from master before the tag
> fork.

Yes.  More specifically, branched from any commit reachable from
release, including from release itself.  Since release is kept
merged into master, the branch is also starting from an ancestor
of master.

 > The topic should be merged in to master, and then
> release, then release merged into master.

It can be merged to master first for testing, but if it is trivial
it can be merged to release first.  Either way release is then
merged into master before it is pushed, and the new release and
the new master containing it should be pushed together.  One must
maintain the invariant that master contains release.

 > However, when the
> next release occurs, I am not sure what should happen. With
> release merged into master, I should be able to do a
> fast-forward merge of master into release

Correct.  The end of the old release can be found from its merge
into master, and could have been tagged also as the last release
of that series.  That's why you don't need a separately numbered
branch for every release series in history.  They can always be
recreated locally if fixes are needed.

 > after tagging the master branch?

It doesn't matter when you tag.  That just adds labels to existing
commits.

-Brad K


More information about the Insight-developers mailing list