Not to continue to harp, but:

> No, you're not exactly right and what you're missing is perhaps a
> critical facet that will help your understanding of this issue.  "We"
> (i.e. CVS) define tagging to mean which revisions of which files are to
> be grouped together (perhaps for a release, or to mark a milestone,
> etc.).  I.e. the two go together: revisions + files.
YES.  I consider the removal of a file as a new revision of that file.  So does
CVS.  I simply want it to apply to concept of tagging, stat, and log to the
head revision of removed files just as it does to non-removed files.  In other
words, removing a file is NOT a special case.

As explained in my previous email, removing the tag does not work and I
actually DO want to tag the removed version.  This allows me to use CVS to
support our workflow and development process.

We are NOT doing multiple lines of development, but enacting a process WORKFLOW
which says that files are in a different state at different times.  Whether or
not the file is present or not doesn't (and shouldn't) matter.

(To recap, I have a moving tag that I use to indicate which revision of a file
is in which state of workflow).  So, if have dev/stage/live tags, and the dead
revision is tagged as dev and as stage, but the previous (non-dead) revision is
tagged as live, that is the state where the client is approving a change that
involves REMOVAL of that file.

If I had removed the tags, as you suggest, the file would be removed from live,
and this does not support our process.

> >  I find it hard to believe that the
> > implementors INTENDED to have cvs commits not affect removed files.
> 
> Now I'm really confused.  A moment ago you were talking about tags.  Now
> you you say "commits".

I meant to say "cvs commands".  My bad.

> Actually if there is a tag then yes the removed file might be checked
> out or exported at the wrong time.  You definitely do not want to ever
> tag "dead" revisions -- doing so puts the repository into an undefined
> state and no guarantees can be made about what might happen as a result.
Not that I've seen.  It seems to work exactly as I want it to.  It's just that
to tag the dead revision, I have to run a different command than I do to tag a
non-dead revision.  This is inconsistent and I see no need for it.

> I think your understanding of the temporal structure of the repository
> is not quite up to speed yet.  Once/if you understand how CVS works across
> time perhaps you'll understand why "dead" revisions can never be tagged.

I'm not sure why you insist that dead revisions "cannot" be tagged and that
doing so will put the repository in an "unstable" state.  I have empiricly seen
that this is not so.

Dave

-- 
David Copeland
Software Engineering Director
NOVO
Relationship Architects for e-Business

Voice 415 646 7026 | Fax 415 646 7001
http://www.novocorp.com

Reply via email to