info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Best practise with tagging


From: Jim.Hyslop
Subject: RE: Best practise with tagging
Date: Tue, 12 Oct 2004 10:08:47 -0400

 

> -----Original Message-----
> From: address@hidden 
> [mailto:address@hidden On 
> Behalf Of Guus Leeuw jr.
> Sent: Thursday, October 07, 2004 11:12 AM
> To: address@hidden
> Subject: AW: Best practise with tagging
> 
> > Von: Jim.Hyslop [mailto:address@hidden 
> > 
> > Guus Leeuw jr. wrote:
> > > > -----Ursprüngliche Nachricht-----
> > > > Von: address@hidden 
> > > >   "Before any public release of the software, you must tag
> > > > the module."
> > > 
> > > I would suggest "Before any ... You must branch the module
> > > with a release
> > > tag"
> > I disagree.
> > 
> > Branches can be very complex to manage. I recommend creating 
> > them only when
> > necessary. If you have a non-branch symbolic tag applied, it 
> > is trivial to
> > create a branch *when needed*.
> 
> True, but what about a person doing cvs tag release_1_0_0 and 
> later (half a
> year) cvs tag release_1_0_0?
> CVS will tell the person that the tag already exists... If 
> (s)he thinks to
> be smart, (s)he might want to try cvs tag -f release_1_0_0 at 
> which point
> you loose your release revision and there'll be no way to bug 
> fix the client
> without feature upgrade.
(Assuming you meant -F and not -f)

OK, but how will creating a branch early help solve or prevent this problem?
You will still have the problem that the tag "release_1_0_0" no longer
refers to Release 1.0.0 of your software.

The solution to this problem has nothing to do with branches: you must
ensure that everyone who applies tags must only force a tag to move if they
are *sure* it should move.

> Is a branch really expensive and difficult to manage if you 
> don't touch it
> often?
*If* you don't touch it often, then no, it isn't that difficult. 

In my experience, though, it is more common to create the branch
prematurely, and you end up merging revisions from the trunk to the branch,
and from the branch to the trunk. The end result is that the head of the
trunk and the head of the branch are identical, but there are several
non-trivial changes between the head and the branch point.

In this scenario, it is far too easy to forget to do one of the merges.
Three weeks later, you do a diff and start second guessing the programmer -
is the difference intentional, or did they forget to merge the code?

Therefore my recommendation: do not create a branch until you know it is
necessary.

-- 
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. (http://www.leitch.com)
Columnist, C/C++ Users Journal (http://www.cuj.com/experts)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]