[ On Tuesday, February 22, 2000 at 08:52:41 (+1300), Chris Cameron wrote: ]
> Subject: RE: Why does CVS treat removed files so specially?
>
> On Saturday, February 19, 2000 5:41 AM, Greg A. Woods 
> [SMTP:[EMAIL PROTECTED]] wrote:
> 
> > [ On Friday, February 18, 2000 at 17:58:35 (+1300), Chris Cameron wrote:  ]
> > > 
> > > Is this a bug?  A tag -F will move an existing tag, maybe it should  check
> > > in the Attic and remove the tag from any files which contain the tag?
> >
> > That's a good idea!  I.e. if the tag exists (on the current branch?) in a
> > removed file (i.e. removed on the current branch), then the tag sould be
> > removed too if the tag would be moved to the head.  That does mean not
> > removing the tag unless either '-f' was specified or a removed file was
> > explicitly specified on the command-line.
> >
> > This fix might even be a sufficient solution to Dave's problem too!
>
>  I'd like to propose that the behaviour be implemented only for a move or 
> delete of a tag WHERE files are not specified (i.e. cvs tag -d or cvs tag 
> -f NOT on cvs tag -f file.c).  In these cases, the tag operation should 
> check through the Attic for any files containing the specified tag and 
> remove it.  My argument for doing this is that if you are moving a tag, or 
> deleting a tag, any files which have been removed from the current 
> directory should have the tag removed, otherwise it is not possible to do a 
> cvs co -r xxx yyy and get exactly what you tagged as you could get some 
> Attic files as well.

I think we're saying essentially the same thing but I do want to be more
liberal and not implement any other restrictions.  Apologies for using
the weird logic in my final sentence.

In other words I think I would prefer that the tag still be removed if a
deleted file is explicitly specified on the command-line.  Anyone doing
this should be well aware of the consequences and I don't really want to
have to force them to do it with raw RCS commands in the repository.  I
do like to hand out lots of rope!  ;-)

No interpretation should be made on the tag name's meaning.  Your
argument essentially presumes that the tag name is a release tag, but it
if you're moving it with '-F' then it's either not a release tag or you
know what you're doing and you are doing a temporal shift on the file
and you do want the file to be "removed" in that release.

I am now thinking though that '-f' might not need to be specified in
order to force CVS to check for the tag in removed files.  Perhaps CVS
should look in all removed files for a specified tag (if it doesn't
already).  Certainly the meaning of '-f' has to be different for removed
files anyway but perhaps it should just be ignored for removed files
rather than meaning that the tag should be removed.

Tag deletion should also look in removed files (if it doesn't already),
and no restrictions based on command-line parameters should be put on
its function -- it should always delete the named tag no matter how the
files it operates on are discovered/specified.

One more necessary restriction though for moving a tag:  If the working
directory is on a branch then the tag should only be removed if it is on
the same branch on the deleted file.

-- 
                                                        Greg A. Woods

+1 416 218-0098      VE3TCP      <[EMAIL PROTECTED]>      <robohack!woods>
Planix, Inc. <[EMAIL PROTECTED]>; Secrets of the Weird <[EMAIL PROTECTED]>

Reply via email to