Why would a "branch" get moved to a "tag"? Why do we need branches for revisions? Why are we deleting branches?

IMO, we should have a branch for each Major.Minor, where all of the Major.Minor.Revision work happens. So branches/1.1 would hold the active work for 1.1.x. When it is time to make a release, then svn cp from branches/1.1 to tags/1.1.1, and then keep working on 1.1.2 on branches/1.1

IMO, branches should never become tags. Tags only get copied to new branches when we need to apply critical fix to a specific release, otherwise we should just roll up the change into the next release of the series.

I recommend minimizing branching where possible, so I don't think that branches for 1.1.1 or 1.1.1.0 are a good idea. SVN is not that good at merging, and making it simple (like Perforce), so lets try not to set ourselves up for icky merges by making branches for each release.

--jason


On Jun 21, 2006, at 4:14 PM, Matt Hogstrom wrote:

After the branches/1.1 was moved to tags there was some question as to what happened to the 1.1 branch. At that time some kind soul created a new branches/1.1.1. No activity has occurred in that branch and given that we'll need to define the release goals of 1.1.1 soon I'd like to propose the following.

After 1.1 is released:

* Delete branches/1.1.1
* Move branches/1.1.0 to tags/1.1.0
* Copy tags/1.1.0 to branches/1.1.1
* Update branches 1.1.1 to be 1.1.1-SNAPSHOT
* Start working on 1.1.1

When 1.1.1 enters time for release

* Move branches/1.1.1 to branches/1.1.1.0
* Change version from 1.1.1-SNAPSHOT to 1.1.1
* Create release candidate rc1
* put out for a vote
* get a successful vote with no respins :)
* move from branches/1.1.1.0 to tags/1.1.1.0

Based on all the confusion in the past I think this procedure makes it clear what phase were in for the release as well as avoids tagging and branching repeatedly.

I'm looking for lazy consensus and not a formal vote.

Matt

Reply via email to