[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Checking a Tag
From: |
Mark D. Baushke |
Subject: |
Re: Checking a Tag |
Date: |
Wed, 23 Jul 2003 01:19:11 -0700 |
Roser Timm (KADA 31) <timm.roser@credit-suisse.com> writes:
> As i never saw my request on the list i post it again - please excuse
> if you receive it twice.
This is the first time I have seen your report.
> We have a cvs problem that looks like a bug to me, and i'd like to
> hear your opinions:
Opinons are cheap and everyone can have one too, so let me see what I
think about your problem... :-)
> If we tag a module and later on delete the same tag on the module, cvs
> acts differently as when the tag has never been set.
Do you try to distinguish between 'the module' and 'all modules' here?
Just because you delete a tag from a few files in a module or even all
files in a particular module does not tell cvs that you have deleted all
possible occurances of that tag from the repository as a whole.
I would really rather that cvs not try to go thru some of my 30GB cvs
repositories to see if a given tag might be unused everywhere just
because I removed it from a few files. If I as an administrator know
that a particular tag was 'wrong' (say it violated a naming convention
or something), then I can always manually hack the val-tags file to
remove the entry there without having cvs grind thru all files in the
repository.
> I recon that cvs checks the val-tags file only when deciding whether
> the tag exists and doesn't look at the files themselves to say good or
> bad.
The cvs.texinfo file says this:
| @item cvs [checkout aborted]: no such tag @var{tag}
| This message means that @sc{cvs} isn't familiar with
| the tag @var{tag}. Usually this means that you have
| mistyped a tag name; however there are (relatively
| obscure) cases in which @sc{cvs} will require you to
| @c Search sanity.sh for "no such tag" to see some of
| @c the relatively obscure cases.
| try a few other @sc{cvs} commands involving that tag,
| before you find one which will cause @sc{cvs} to update
| the @file{val-tags} file; see discussion of val-tags in
| @ref{File permissions}. You only need to worry about
| this once for a given tag; when a tag is listed in
| @file{val-tags}, it stays there. Note that using
| @samp{-f} to not require tag matches does not override
| this check; see @ref{Common options}.
There is presently no function in cvs to remove entries from the
val-tags file.
> This looks inconsistent to me:
> if you check out a module with a tag, you would either expect cvs to
>
> - return with failure saying "no such tag" - when the tag has not
> been set on the module
>
> - or it should return the files in the tagged revision
>
> What it currently does is:
>
> if the tag has been set once on any module in the Repository (and
> therefore is in val-tags) it returns with success but with no files
> when the tag has not been set (or deleted) on the module.
Yes, this is the intended behavior at present.
> It should return a failure and "no such tag" though !
You are free to remove the val-tags file or entries in it in those rare
cases where you have needed to purge the tag from all files.
> For any automated build process this is difficult to handle as the
> returncode of the checkout is not deterministic.
So, you want to file a bug to have us remove the val-tags processing
entirely and always just return zero files when you mistype a tag name?
This feature is really only there to quickly tell a user that the tag he
is attempting to use has not been seen via normal cvs operations
previously.
Feel free to have the taginfo trigger modify the val-tags file if it has
verified that all possible instances of a given tag have been removed.
If you or someone else feel sufficiently strong about it to introduce a
new command to control the val-tags file contents, feel free to discuss
its possible implementation on this list.
> Regards
>
> Timm
Enjoy!
-- Mark
- Checking a Tag, Roser Timm (KADA 31), 2003/07/23
- Re: Checking a Tag,
Mark D. Baushke <=