Can I maintain config files as a CVS branch w/o messing up
mergemaster etc.?
David Wolfskill
david at catwhisker.org
Thu Apr 29 18:35:19 PDT 2004
>Date: Thu, 29 Apr 2004 17:59:18 -0400
>From: Doug Lee <dgl at dlee.org>
>To: freebsd-stable at freebsd.org
>Subject: Can I maintain config files as a CVS branch w/o messing up
>Sender: owner-freebsd-stable at 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 at 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.
More information about the freebsd-stable
mailing list