[Top][All Lists]

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

Re: importing vendor branches

From: Greg A. Woods
Subject: Re: importing vendor branches
Date: Thu, 3 May 2001 17:27:46 -0400 (EDT)

[ On Friday, May 4, 2001 at 06:23:02 (+1000), Fergus Henderson wrote: ]
> Subject: Re: importing vendor branches
> But nevertheless, this behaviour is BAD - Broken As Designed.
> Any command whose default behaviour leaves the main branch of the
> repository in an inconsistent state is a problem waiting to happen.

I think you misunderstand the design.  I't correctly designed to solve
the problem that it was intended to solve.

> The fact that the documentation describes this behaviour merely confirms
> that it is design bug rather than just a coding bug.

The problem is not in the design of vendor branch support but rather in
all the stupid and incorrect advice given by the manual and people
everywhere to use "cvs import" for sources that are not third-party
sources to be managed using the vendor branch feature.

"cvs import" should not *EVER* be used for anything but code explicitly
intended to be managed using the vendor branch feature!

I understood Nils' original question to be more concerned with code that
would not be managed using the vendor branch feature, though I may be
mistaken in that impression.

> The current documentation is NOT explicit enough in pointing out that
> the repository will be in an inconsistent state during the time in between
> the import and the merge.  It should warn users of this problem.

There is nothing really "inconsistent" about the state of the repository
after a "cvs import".

Certainly anyone using "cvs import" and thus the vendor branch feature,
must be aware of the issues, but that's what the manual documents.

> That's not what I want to do; I want to import on a branch.
> But I want importing on a branch to only affect the branch,
> not to break the main line.  Currently importing on a branch
> breaks the main line.

"cvs import" does not (can not) import to a normal branch -- it imports
only to a special magic branch called the vendor branch.

My old hack to import to the trunk was to simulate doing the necessary
"cvs add" operations and was really only useful for the first creation
of a module.

Note that the original CVS-II paper described the concept of multiple
vendor branches, but that support was never written in cvs and indeed
it's pretty much impossible to implement properly since it would require
doing 3+N-way merges.  One can achieve some degree of multi-vendor
tracking by using normal branches (and "cvs add"!), but it's not really
of much use so far as I can tell.

> > In real life I only ever use "cvs import" for third-party code that I
> > want to track using the CVS vendor branch support.
> That's the main time I use "cvs import" too.  The trouble is that it doesn't
> work properly.

If you do the merges properly (and the manual, I think, now describes
the *proper* method, which is unfortunately not the same as the method
described by the warning given at the end of the "cvs import" run), then
you shouldn't have any problems.  I certainly don't and I have hundreds
of modules and nearly two gigabytes of files using the vendor branch
feature, and I've been using it for nearly 8 years now.

                                                        Greg A. Woods

+1 416 218-0098      VE3TCP      <address@hidden>     <address@hidden>
Planix, Inc. <address@hidden>;   Secrets of the Weird <address@hidden>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]