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