This idea is in relation to the way most (all?) distros handle the
updates of config files that are included in packages.  (Mainly I'm
thinking of files under /etc).

I'm referring to the way they leave you with an extra config file for
you to hunt up and examine to manually merge in syntax changes, by
leaving you effectively with a crude versioning system represented by
multiple files.  RH has its .rpmsave and .rpmnew things, gentoo has
..thing_blah_<number>.

What all the distributions should probably be doing instead is using a
real versioning system to hold the multiple versions.  This way when
you install the package it could install the real updated config file
and check for merge conflicts and warn you if there were any.

That way you could easily roll back; and if something did break, you
could easily check what differences had been recently introduced. E.g.
cd /etc; cvs diff -D"2 days ago" .

As things stand, all the distros are effectively saying that you do
source file config management by storing multiple separate versions of
each file and manually diff, merge, and copy files to make changes. 
Imagine if we were still trying to do that for program source code! 
Heh.

luke

PS:

Note to self: I must dust-off and set up my cvs-etc script under gentoo.
Then I can try out my own suggestion with a short wrapper shell script,
and see how it works out in practice.

(The only problem I found in keeping /etc under cvs was after doing a
system upgrade by installing the new distro version into a spare
partition: in that case, if I wanted to preserve the repository
and history of changes across upgrades, I had to transfer the repository
and history manually.  Tedious.)

To be perfectly honest: I had interesting discussions on the cvs
developers mailing list about this - about using cvs on /etc config
files.  Several developers were dead against it, but their objections
seemed odd to me, almost "religious", rather than logical: dire warnings
of unnamed disasters.  In practice, it works well.)

In the unlikely event anyone's interested, the cvs-etc scripts and man
page (cvs-etc cvs-etc.1 cvsadddir printf quote) can be found chucked
into this directory:
http://members.optushome.com.au/lukekendall/script/

luke

-- 
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to