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