[Top][All Lists]

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

Re: Howto solve this in cvs ?

From: Greg A. Woods
Subject: Re: Howto solve this in cvs ?
Date: Sat, 13 Oct 2001 14:14:28 -0400 (EDT)

[ On Saturday, October 13, 2001 at 11:24:16 (+0200), Gerhard Ahuis wrote: ]
> Subject: Re: Howto solve this in cvs ?
> On Fri, 12 Oct 2001, Greg A. Woods wrote:
> > 
> > You will encounter problems with multiple vendor branches, not the least
> > of which is that you no longer have correctly working conflict detection
> > on "cvs import".
> The conflict detection will not work on the normal branch (with the
> second vendor branch) but why  shouldn't it work anymore on the main
> branch (nothing is really changed there) ?

well, yes, strictly speaking conflict detection of a sort will still
appear to work for either "vendor" branch.  However it will only appear
to work if the trunk is up-to-date and includes all intended changes
from the other vendor branch(es).

Remember the direction of merging in vendor branches is opposite to the
way one normally thinks of it with normal branches, _and_ it's normally
incomplete too.  You always merge new vendor changes to the trunk,
except when there are no local changes to a file, in which case the
working revision is on the vendor branch.  This can never work right
with multiple vendor branches unless each vendor variant is almost
always identical to the other, and only if _all_ vendor changes are
always merged to the trunk (i.e. so that any files with variances
between the vendors will always have local "changes").

For general success you really can only ever have one proper vendor
branch in CVS.

> > I thought you also wanted to create normal branches from your local
> > "trunk" version too.  That won't work (well) with even one vendor branch.
> If you move the branch tag by hand this will work I think, you only have
> to be careful when moving the branch tag from a version created on the
> normal branch to the second vendor branch. I didn't test what happens in
> that case.

It's worse than that....

Just try drawing the revision trees for various files and look at all
the different cases where the tags will be placed for locally modified
and locally unmodified files.

You'll have complete spaghetti if you try to mix multiple vendor
branches with local branches too.  Any mistakes anywhere will be
impossible to unravel manually.

You are almost infinitely better off treating the vendors in this case
as local developer groups and simply checking their releases in on
normal branches yourself, and then subsequently doing merging to
whatever local branches you want to create.

                                                        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]