Subject: Re: CVSUP via cvsup.de.netbsd.org
To: None <current-users@netbsd.org>
From: Klaus Heinz <k.heinz.okt.zwei@onlinehome.de>
List: current-users
Date: 10/10/2002 01:57:56
Christopher Richards wrote:
> Klaus Heinz <k.heinz.okt.zwei@onlinehome.de> writes:
> >

Until now I never had the need to know more about it, so I have done some
more research and it's now clear why we see this behaviour.
If you change version X of a file, it still carries the RCS ID for X
when it is checked into the repository. Locally, the cvs client makes
this change (X -> X+1) to the file, so you see the correct version.

When someone else checks out the file, the cvs server seems to replace
the ID X (with X+1 as this is what was recorded in file,v) so that this
client also gets the correct version and ID. But if the project uses a
non-default id tag (eg NetBSD), the server has to know about this: in
CVSROOT/config you have to add the line 'tag=NetBSD'.

All of this also applies to a checkout from a local repository.

> This problem appears when the CVSup server's NetBSD repository lacks a
> file called 'CVSROOT/options' containing the line 'tag=NetBSD=Id'.

It doesn't seem to be a problem of the CVSup server, which only hands
out what it gets. The off-by-one errors appear on a checkout from a CVS
repository, either local or over the net.

> So far, to my knowledge, only cvsup.no.netbsd.org is correctly
> configured.

Nope:

  $ pwd
  /tmp/cvsup/NetBSD/CVSs/NetBSD-cvs_cvsup.no/basesrc/bin/sh

  $ head -1 memalloc.c
  /*      $NetBSD: memalloc.c,v 1.24 2002/10/04 13:15:51 christos Exp $    */

For the explanation, see above.

But in its incarnations as the anoncvs server anoncvs.no.netbsd.org it
does the right thing(TM).

> For more information, see PR misc/15797 and the thread starting at
> <http://mail-index.netbsd.org/netbsd-bugs/2002/03/03/0005.html>.

Thanks for the pointer but maybe 
  http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=15797

is a better reference, with additional comments.

ciao
     Klaus