Skip site navigation (1)Skip section navigation (2)
Date:      24 Dec 1995 14:58:50 +0800
From:      peter@haywire.dialix.com (Peter Wemm)
To:        freebsd-current@freebsd.org
Subject:   Re: cvs fails to remove no-longer-present files
Message-ID:  <4bitna$d6q$1@haywire.DIALix.COM>
References:  <199512230435.PAA07671@godzilla.zeta.org.au>, <199512230438.UAA00172@corbin.Root.COM>

next in thread | previous in thread | raw e-mail | index | archive | help
davidg@Root.COM (David Greenman) writes:
>>The new cvs apparently has a bugfeature of checking out old things from
>>the Attic when there are references to the old things in CVS/Entries
>>This is inconsistent with the old cvs, and breaks ctm, which doesn't
>>export CVS/*.

>   Oh! I haven't switched to using the new cvs yet...that explains it.
>   Peter?

>-DG

The death support code in the new cvs is getting tripped up because we
are writing the repository with the old cvs.

The new cvs creates the files in a way that is totally backwards
compatable with the old cvs, but it's not perfect the other way
around.

With cvs-1.5 and later, the state of the file is stored in the state field:
1.1
date     94.06.22.06.57.25;  author peter;  state Exp;
                                            ^^^^^^^^^^
Since files can now be added and removed over and over again without
having Attic conflicts, the new cvs has to go purely on the "state" of
the revision it is dealing with rather than the global "Attic" state.

Specifically...
Under old cvs, if somebody does a 'cvs rm' on a file on the HEAD, it
is moved to the Attic - this is a global change.  If you do an 'cvs
update -r yesterday' your tree will no longer build because the file
was not recovered.

However, with the new cvs writing the repository, this does exactly
what you'd expect..  If you did an 'update -r yesterday' (and the file
was only just removed), the file will reappear again.  When you do the
'update -A' it will disappear again.

This is useful for things like in -current at the moment, where
i386/conf.c is about to be removed.  Once it is gone, under the old
cvs, it will no longer be possible to do a 'cvs update -r "december
1st"' and get a buildable system.

The "fix" is to install cvs from -current on freefall.  This is
overdue..  I've just made the changes on freefall to enable it to be
compiled there...

-Peter




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4bitna$d6q$1>