Date: Thu, 29 Apr 2004 18:35:05 -0700 (PDT) From: David Wolfskill <david@catwhisker.org> To: dgl@dlee.org, freebsd-stable@freebsd.org Subject: Re: Can I maintain config files as a CVS branch w/o messing up mergemaster etc.? Message-ID: <200404300135.i3U1Z5c4066938@bunrab.catwhisker.org> In-Reply-To: <20040429215917.GZ55912@kirk.dlee.org>
next in thread | previous in thread | raw e-mail | index | archive | help
>Date: Thu, 29 Apr 2004 17:59:18 -0400 >From: Doug Lee <dgl@dlee.org> >To: freebsd-stable@freebsd.org >Subject: Can I maintain config files as a CVS branch w/o messing up >Sender: owner-freebsd-stable@freebsd.org >I track STABLE and wonder if there's a clean way for me to use CVS to >do it (without having the whole CVS repo on my box). I also track -STABLE (as well as -CURRENT); however, my approach is to go ahead and maintain a private mirror of the CVS repo. (Actually, I do this on a couple of boxen, one of which is my laptop. The CVS repo on my laptop is thus actually a mirror of my private mirror.) Disk space is not all that expensive nowadays; the repo appears to take right around 2 GB: g1-15(4.10-P)[1] cd /cvs/freebsd/ g1-15(4.10-P)[2] du -ks . 2084040 . g1-15(4.10-P)[3] And I find it handy to have the repo on my laptop. (I run a Web server on it, too, so I can play with cvsweb locally, even if I'm disconnected from the Net.) >Example: I >modify /etc/rc.firewall and then cvsup my way up to a more current >STABLE. The normal tactic is to hand-merge via mergemaster, but I >think there should be a way for me to get CVS to do it: Yes, well.... I could be wrong about this, but I would expect that having different files in the same (CVS working) directory have their histories &c. in different CVS repositories would be awkward, at best. After all, a given directory may have at most one "CVS" subdirectory. That said, I do this sort of thing for /usr/src/sys/i386/conf: the original files I leave alone; my working kernel config files are merely represented by symlinks (in my case, to /usr/local/src/kernels/...), and the latter hierarchy is in a local CVS repository (parallel to the FreeBSD one). (Source control is A Good Thing.) > cvsup/mergemaster for fresh system (hypothetical of course) > (current /etc/rc.firewall is now exactly the STABLE version) > make local mods > cvs commit mods (locally) > cvsup > use CVS instead of Mergemaster to merge in changes since last cvsup Along with the above, I use mergemaster. Frankly, after doing this for over 2.5 years (tracking each of -STABLE and -CURRENT on a daily basis, missing a total of maybe a dozen days in that time for -STABLE; perhaps twice that for -CURRENT), I find it rather simple and straightforward. I would be hard-pressed to come up with a reason for wanting to find a different approach. (My build machine -- which is presently powered off -- has built something along the order of the 875th iteration of its -STABLE kernel since /usr/obj was last cleared. The laptop's numbers are considerably smaller, as I needed to replace the disk drive a few months ago. And -CURRENT tends to need clearing /usr/obj a bit more often than -STABLE does. :-}) Peace, david -- David H. Wolfskill david@catwhisker.org I do not "unsubscribe" from email "services" to which I have not explicitly subscribed. Rather, I block spammers' access to SMTP servers I control, and encourage others who are in a position to do so to do likewise.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404300135.i3U1Z5c4066938>