Subject: CVS vendor branches (was Re: BIND8 upgrade?)
To: NetBSD Networking Technical Discussion List <tech-net@NetBSD.org>
From: Alan Barrett <apb@cequrux.com>
List: tech-net
Date: 01/29/2004 10:40:57
On Wed, 28 Jan 2004, Greg A. Woods wrote:
> The secret of course is to not use "cvs import" in situations where it
> was not designed to be used.  :-)
> 
> The _right_ way to do this is to create a normal branch for the vendor
> releases of third-party code and to manually check in new releases on
> that branch and then to manually merge them to the trunk (and to other
> branches) when and where needed.

The worst problem with "cvs import" is that some things appear on the
trunk before you want them to.  This is caused by the way CVS treats
branch number 1.1.1 as a magic special case.

If you avoid using branch 1.1.1, and instead use a vendor branch with
a different number, then you can use something like "cvs import -b
1.1.3" without that problem.  You can also have more than one vendor
branch (use "cvs import -b 1.1.5" for the second one).  Then you can
manually merge the pieces that you want onto the trunk (via "cvs update
-j $OLDVENDORTAG -j $NEWVENDORTAG").

--apb (Alan Barrett)