info-cvs
[Top][All Lists]
Advanced

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

Re: Tag locking change


From: Greg A. Woods
Subject: Re: Tag locking change
Date: Wed, 9 Oct 2002 00:57:01 -0400 (EDT)

[ On Tuesday, October 8, 2002 at 20:02:14 (-0700), Paul Sander wrote: ]
> Subject: Re: Tag locking change
>
> >--- Forwarded mail from address@hidden
> 
> >[ On Tuesday, October 8, 2002 at 16:11:42 (-0700), Paul Sander wrote: ]
> >> Subject: Re: Tag locking change
> >>
> >> >--- Forwarded mail from address@hidden
> >> 
> >> >Mark writes:
> >> >> 
> >> >> If one wants to tag the latest on a branch, why should one have to 
> >> >> create a
> >> >> workarea to do it?
> >> 
> >> >How do you know you want to tag the latest on a branch?  Either you have
> >> >no idea what the "latest" actually is, or you know that no one is going
> >> >to be trying to commit changes while you're tagging the files.  In
> >> >neither case is directory-at-a-time locking going to make any difference.
> >> 
> >> Most of the time it's the former.  But you do know what was "latest at
> >> a given time".  And "a given time" could possibly be "now".
> 
> 
> >Ah, no, you don't _know_ that for the time "now" because if you did then
> >you would have a working directory which contains that state and
> >therefore no need to use 'cvs rtag'.
> 
> Who do you mean by "you" here?  *I* might have an up to date working
> directory, but the guy creating the tag may not.  It's also not too hard
> to tell everybody to hold their breath for a minute while the command is
> typed, provided there's enough discipline to *know* that the latest
> committed versions are the proper ones for the tag.  (Note that there's
> a distinction between "knowing" and *knowing* here.  That distinction is
> that "knowing" is hoping that something is true, *knowing* is being
> absolutely certain that something is true.)

I mean that it is logically impossible, generally speaking, for anyone
to know what is "latest" on a branch at the current time without having
a working directory updated to the head of the branch at the current
time.  I.e. "*knowing*" in your strange nomenclature where you've
redefined the meaning of the word in the case where it is not emphasised
in some way.

Yes, there's all sorts of external policies you can enforce so that you
have a very good idea of what's "latest" at the time, but you still
won't really know for sure, at least not until after your 'cvs rtag' has
finished running and you can then look and see what was there.

If you really Really REALLY want to tag the head of a branch then just
check out the branch (or do a "cvs update" in any existing working
directory which has no un-committed changes) then then apply the tag to
what you get as a result by running "cvs tag" in that working directory.
That way you can know ahead of time exactly what you've got.  It's then
up to the user whether or not they actually look to see what's there
before they tag it.

Generically speaking this is twice as important if 'cvs rtag' does not
lock the entire tree first.

We're not talking about specifics usage examples here -- we are talking
about generic rules for how CVS operates without taking into account
_anything_ about how people might actually use it in some circumstance.

-- 
                                                                Greg A. Woods

+1 416 218-0098;            <address@hidden>;           <address@hidden>
Planix, Inc. <address@hidden>; VE3TCP; Secrets of the Weird <address@hidden>




reply via email to

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