Another tool for updating /etc
John Baldwin
jhb at freebsd.org
Wed Mar 24 19:23:50 UTC 2010
On Wednesday 24 March 2010 12:57:48 pm Bakul Shah wrote:
> On Tue, 23 Mar 2010 11:08:45 EDT John Baldwin <jhb at freebsd.org> wrote:
> > or 'cvs up'. If the local changes I made do not conflict, then just merge the
> > changes automatically (e.g. enabling a serial console in /etc/ttys should not
> > conflict with $FreeBSD$ changing when moving from 7.2 to 7.3).
> >
> > To that end, I wrote a new tool that I think does a decent job of solving
> > these goals. It does not force you to read the diffs of any files updated in
> > /etc, but there are other tools available for that. However, if you are ok
> > with reading UPDATING, commit logs, and/or release notes for that sort of
> > info, then this tool may work for you.
> >
> > It also has a nice feature in that you can generate a 'diff' of your current
> > /etc tree against the "stock" tree allowing you to easily see what local
> > changes you have made. I have already found this feature to be far more
> > useful than I first expected.
> >
> > The UI is (hopefully) minimalist. The default output looks like the output of
> > 'svn up' or 'cvs up'.
> >
> > If you'd like to give it a shot, you can find the script and manpage at
> > http://www.FreeBSD.org/~jhb/etcupdate/ There is a README file that gives a
> > brief overview and instructions on how to bootstrap the needed metadata before
> > the first update. There is also an HTML version of the manpage.
>
> Looks good!
>
> But I wonder... why not build something like this around cvs?
> Basically a three way merge is exactly what we want for /etc,
> right? cvs because it is in the base system. I used to
> maintain /etc changes in cvs and that was useful in keeping
> track of configuration changes on shared machines.
I wanted something that was version-control agnostic (we use svn at work for
our local version of FreeBSD for example). Also, while having full history
would be nice, that uses up a good bit more disk space and would duplicate
the history that is available in the existing FreeBSD version control (but with
less useful details such as commit log messages). I use CVS for /etc on some
of my machines as well and find it handy, but I tend to not use that to do
full 3-way merges, but just track what is in /etc itself.
--
John Baldwin
More information about the freebsd-hackers
mailing list