On Nov 2, 2005, at 9:18 AM, Bruce Snyder wrote:

On 11/2/05, Dain Sundstrom <[EMAIL PROTECTED]> wrote:


I suggest next time we are creating a milestone, preview or tag only
(unsupported) release, we don't create the temp branch in branches.


I respectfully disagree with this idea and my reasons are simple -
tags are meant to mark a point in time and *should not change* (i.e.,
commits to a tag should not happen). If a tag needs to change (i.e.,
something needs to be committed to it) then that tag figuratively
becomes a branch (and should therefore be moved to the branches dir).

You know, I think the big problem here is we are trying to apply CVS terminology and dogma developed due to the limitations of CVS. In CVS, the dogma is you never create a branch from a tag, always branch then tag. In subversion there is no difference between a tag and a branch and we can easily change between them. The difference lives in how we treat them.

I get the feeling that this debate is in a quagmire because we do not have a common set of definitions for the terms we are using, so let's formally define them. I think we have the following categories for code lines in our repository:

supported code line (mutable)
snapshot code line (immutable)
experimental code line
?? others ??

The nice thing with subversion is we can switch a code line between the three groups with zero impact to history and development. We can simply move a code line to a new category, or create a copy of a code line in a new category.

Another big problem we have is creating a snapshot line is can not atomic operation. Subversion is more then willing to make an atomic copy, but we can not create a snapshot code line without modifying the build and sometimes the code, and then there is certification testing which sometimes requires modification to the code line. I think how we handle the hand off from a supported code line to a snapshot code line is at the heart of this debate.

-dain

Reply via email to