Date: Fri, 18 Apr 1997 15:51:31 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: eivind@nic.follonett.no (Eivind Eklund) Cc: terry@lambert.org, hackers@freebsd.org Subject: Re: CVS vendor branches Message-ID: <199704182251.PAA03213@phaeton.artisoft.com> In-Reply-To: <199704182158.XAA15898@nic.follonett.no> from "Eivind Eklund" at Apr 18, 97 11:58:08 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> a way of hacking some of the wanted > features is by treatingthe FreeBSD main development as a vendor > branch, and using cvs import to maintain the parts you don't change. This works, but then I have my history at the cost of losing that of FreeBSD. It also leaves the issue of integrating my history blowing in the wind... when/if an integration takes place, the only thing imported will be my tip, right? So if I do something to accommodat a VM bug (say), and it's later fixed, and I want to branch back there for maintenance, now you must resolve conflicting tips, right? > If you have a good idea for how it would be possible to handle this > situation (without thinking of what CVS can handle today), we can of > course contact the cvs-info mailing-list and see if somebody there > might benefit from similar features and can be convinced to write > them :) It would require the ability to "unbranch", and then handle features on a feature-branch-by-feature-branch basis (merged feture branches would "go away" when the head got past the branch point). If you could combine this with history integration, and include a tag prefix (for instance, it might be "feature_foo" in my tree, but Bruce might have "feature_foo" in his tree, so to import the tree from the branch point to the integration point would require importing "terry_feature_foo" and "bruce_feature_foo" seperately, to keep the histories intact). Maybe they could incorporate a "tree vendor" tag, and by default it would be "FreeBSD" for FreeBSD and "terry" for changes I made on my machine? Then I could export a "CVSup" (probably a CTM, actually) with just the "terry" pieces, and everyone could coexist. After integration, the "terry.feature_foo" tag is replaced by the "FreeBSD.terry_feature_foo" tag, and my local version of the changes are removed from my tree and replaced with the new ones (basically, the integrated feature changes "tree vendor" tag on integration of the code -- it's renamed). You could probably synchronize as many concurrent CVS trees as you like, as long as you had export tools and basically the same insertion mechanism as "CVSup" and a way to recognize an integration event to trigger a rename... something like: cvs vendor -old terry -t feature_foo -new FreeBSD ? Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704182251.PAA03213>