[IPython-dev] (slightly OT) tags vs. branches

Aaron Meurer asmeurer at gmail.com
Tue Aug 16 23:14:22 EDT 2011


I can't speak for IPython, but this is how we use them with SymPy.

As you know, the HEAD commit of a branch moves as the branch is
updated, whereas a tag always points to the same commit.  Therefore,
you should always tag the commit that is used to make a release, so
that people can recreate it exactly from the tag if they want to.

With SymPy, when we get ready to release, we create a new branch with
the name of the version (like 0.7.1), and prepare the release there.
This lets development continue in master, even though that may be less
stable than you would want preparing for a release.  Once the release
is done, I tag the commit, and merge the release branch back into
master (btw, it's important to merge, not rebase).  Generally, at this
point, we delete the release branch, as it's useless and redundant,
but I suppose this may not always happen.

Aaron Meurer

On Tue, Aug 16, 2011 at 9:05 PM, David Warde-Farley
<wardefar at iro.umontreal.ca> wrote:
> Gentlemen,
>
> I noticed you have both tags and branches related to releases. As I am currently in the midst of getting the Theano team up to speed on git (woohoo! we've switched!) and the GitHub pull request style of workflow (via gitwash and my various tl;dr cribbings from it), I wonder if you could enlighten me on why you have both, and what each might be useful for.
>
> Thanks in advance,
>
> David
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>



More information about the IPython-dev mailing list