[cvsnt] cvs export/checkout with tag

Bo Berglund bo.berglund at telia.com
Wed Mar 21 21:57:55 GMT 2007


On Wed, 21 Mar 2007 13:25:30 +0100, "Slothouber F (Frans) (InTraffic)"
<Frans.Slothouber at InTraffic.nl> wrote:

>> Directories are not versioned or tagged so they get created.
>
>I can live with that.
>
>It is not very consistent though. 
>cvsnt does give an error message if you export a module with a
>non-existent tag.

THe bugger here is that if a tag is not found in the CVSROOT/valtags
file then CVSNT will scan the whole repository to try to find it in
order to record the tag in that file. Only after failing that will it
output the error message, but this tells you that the tag does not
exist anywhere.
Why CVSNT should bother at all depends on very old code that has not
been removed yet. But in EVS it apparently is no longer doing this.

The effect of this when you specify a tag that *does* exist but has
not yet been recorded in the CVSROOT/valtags file is that before CVS
will even start doing your command it scans the entire repository for
it and as soon as it is found it is recorded in valtags and the actual
checkout/export starts.
Next time the operation is much quicker since the valtags file now
contains the tag.

But having a tag in valtags helps not at all, because there is no
record as to which files actually contain the tag so CVS still has to
examine every file in your specification for the checkout or export
command to determine if that file will be retrieved or not.

>I request a module with a tag that does not exists in that particular
>module, so I expect 
>a similar error message. 
> 
>Example:
>    cvs export -r FooBar a_module
>    cvsnt [export aborted]: no such tag FooBar

It does not. For some unknown reason CVS just checks that the tag
exists anywhere at all, the proceeds to getting the tagged files and
if the number of files that match is zero, fine. Nothing sent and no
error message.

>> 
>> >  cvs checkout: in directory .:
>> >  cvs checkout: cannot open CVS/Entries for reading: No such file or
>> >directory
>> >  11:30:20:   -> unlink_file_dir(mod1)
>> >
>> >Which gives an error message, but not the one I expected :)
>> >
>> 
>> This is probably caused by the fact that nothing was checked out
>> (nothing matched) and CVSNT did not have a check for this while
>> creating the admin files in xx/CVS.
>> But is it really an *error* message???
>
>It looks like an error message.  
>
>The problem is that this is a confusing message.

I fully agree, the reason the CVS/Entries file is missing is because
not a single file was checked out so CVS did not create the sandbox
admin files....

HTH

/Bo
(Bo Berglund, developer in Sweden)


More information about the cvsnt mailing list