Date: Wed, 26 Feb 1997 11:35:18 -0700 (MST) From: Nate Williams <nate@mt.sri.com> To: Terry Lambert <terry@lambert.org> Cc: nate@mt.sri.com (Nate Williams), freebsd-current@freebsd.org Subject: Re: anoncvs server Message-ID: <199702261835.LAA29819@rocky.mt.sri.com> In-Reply-To: <199702261751.KAA28356@phaeton.artisoft.com> References: <199702260118.SAA26209@rocky.mt.sri.com> <199702261751.KAA28356@phaeton.artisoft.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert writes: > > > > You might even be able to create the 'magic' branch tag on your local > > > > machine, but I've not done it. > > > > > > > > Have you messed with it at all? > > > > > > Yes, but it looks like I can oly do one "magic" at a time without a > > > mirror repository and writing in an incremental checkin for a vendor > > > branch (possible with a "cvs log | sed ...", but takes too much local > > > space to do). > > > > What? The Repository files are not going to be modified if they're on > > the 'magic' branch, so why the need for a mirror repository? And, a > > vendor branch is totally un-necessary? > > There is a difference between "a magic branch" and "the magic branch". > You guys have not stuck a tag into the main CVS tree, so I can create > "a magic branch" locally, but to create "the magic branch" takes someone > with commit privs. I'll have to defer to John here, since I'm not sure if it requires someone with commit privs to do it. It might be as easy as creating a local 'hands-off' branch on the local branch. John? > The need for the mirror repository comes from me needing to support > incremental change-over as portions of my patches are (hopefully) > integrated into the main line source base. To remain operational, > a local system built from the regular sources with my "magic tag" > stuff merged in from my local use of the tag requires that I back > out changes as they are included: > > FreeBSD | Terry > ,-| > | | > Standard tree | | > | |-. > `-| | > | | My change #1 > | | > |-' > |-. > | | > | | My change #2 <<depends on #1>> > | | > |-' > ,-| <<Locally remove "My change #1">> > Standard tree | | > + | | > My change #1 | |-. > `-| | > | | My change #2 <<depends on #1>> > | | > |-' > | > > I can't do the ""Locally remove" steps against the magic branch without > a second tree. Sure you can. It's called 'merging' in the change from the FreeBSD branch into your 'magic' branch. And, as I stated before it's a nightmare to do. > If FreeBSD came in on a vendor branch initially, then it wouldn't touch > anything else I had done locally. You're free to do that, but it requires the same sort of things Peter does in the SMP branch. But, it means losing all of the history for the FreeBSD changes. Either we provide you with a 'vendor' source SNAPSHOT, or we provide you with the CVS repository. You can't mix/match what you want, simply because it's 'not possible' to do automatically. > Alternately, if it came in with a > predefined "magic tag", I could only make one change locally, and then > wait 9 months (the current time outstanding for the layering patches > being committed) before I could resonable reuse the "magic tag" for > another change. I don't think you understand CVS/branches very well. The 'magic tag' is a 'magic branch tag'. So, assuming we have the magic tag as set to be 1.1000 for you. You 'locally' tag the FreeBSD sources at some point to be at that point. Then, you modify your sources (similar to what we've done with the RELENG branches) using normal CVS commands, and these changes occur *ONLY* on the 1.1000 branch. CVSup refuses to touch this branch because it's predefined to be 'magic', or for local use. As changes are made in -current, you can either refuse to 'merge' them into your branch, or merge them in, as has been done with all the YAMFC changes you've seen. But, since *YOU* are the magic branch maintainer, it is your responsibility to merge them in, nobody but you can do them. In any case, these are the sorts of things you had to do in the past anyway, it's just that CVS makes it (hopefully) easier to do these sorts of tasks. Assuming you've done that, you should be able to do a diff from -current to your sources at any point in time, and show all of your logs. The above two tasks are not automated in CVS, but I'm sure you could whip up a script of two to build them. Note also that things aren't as 'clean' as one would like, because changes you made will also be mixed in with 'merges' from -current, but I don't think anyone would fault you for that. > With the "magic tag" approach, I can only have one set of dependent > patches outstanding at one time. True, but you can't have everything. What you have now is orders of magnitude better than what you had to do before. And, assuming you've kept things 'separate' *you* should be able to pull out the relevant changes as needed. Having N sets of 'depedant' patches is pretty much impossible in CVS w/out N branches, and keeping N branches sychronized is an almost impossible task. But, if you *really* want I'm sure John could give you a set of 'magic branch tags' he won't touch. :) :) :) :) Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702261835.LAA29819>