Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: git copies of cvs modules available



At Sun, 6 Dec 2009 19:49:29 +0000, David Holland 
<dholland-tech%netbsd.org@localhost> wrote:
Subject: Re: git copies of cvs modules available
> 
> On Sat, Nov 07, 2009 at 11:37:55AM -0500, Greg A. Woods wrote:
>  > For example with src/games/hunt/Makefile there's some really bizarre
>  > confusion w.r.t. the vendor branch -- it is in an impossible state.
>  > (revision 1.1 and revision 1.1.1.1 MUST always be identical!)
> 
> This is not true. The state of hunt/Makefile is what you get if you
> cvs add and commit version 1.1, and then later on do a cvs import of
> the same file

You are not supposed to do that kind of thing with CVS though -- at
least not so long as you expect things to continue to work "properly".

CVS "vendor branch" directories are very tricky in their subtle details.

I.e. when I stated that rev. 1.1 and rev. 1.1.1.1 "MUST" always be
identical I was stating a condition that's required for correct
behaviour of CVS for some operations.

Sure, you can create that mess with CVS (perhaps if you do things
backwards, as you suggest they were done) but the result you get is not
going to be usable in all of the ways you might expect it to be.

Furthermore the merge after import is _necessary_ if there have ever
been any local commits to any files -- an import without a merge is
unfinished and leaves the entire module in a poorly defined state.

That's just the beginning of how things can go wrong in vendor branched
modules.  The problems that have been observed and reported with
converting the CVS repository to Git (or whatever) are directly a result
of this kind of mess and others like it.

Luckily Git and similar DVCS's can more easily and naturally deal with
managing local changes on remote branches, so perhaps if a decision is
eventually made to fully and finally convert the NetBSD CVS repository
into Git form or something similar then these vendor-branch messes in
the current NetBSD repository can be undone and fixed in a way that will
more properly reflect the way the changes were intended to be made and
managed.  Sadly this may have to be a mostly manual process because
there are many sub-directories with vendor branches which are not proper
CVS modules in NetBSD's repository.

-- 
                                                Greg A. Woods
                                                Planix, Inc.

<woods%planix.com@localhost>       +1 416 218 0099        http://www.planix.com/

Attachment: pgpKEQtm1WrTj.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index