On Wed, Nov 27, 2002 at 11:55:50AM -0500, Michael Scherer wrote: > > oh, i should have know, all my good ideas have already be suggested, or > implemented.
:-) > > one other idea, is that we may put every config file in cvs. Like this: http://jamsb.austms.org.au/cdrom/images/S2_2002/Blue/USQ/csc2405/sysad-doc/sysad-doc/indexf.html There are many papers about doing this. This is just the first I found. I did something simlar once with RCS, but I also implemented the checkout, checkin in vim so that when you edited a file you automatically got a checked out version and when you left vim, if it had changed, it checked the file back in, complete with a comment that the user enters. > when we upgrade a package => cvs commit. You mean after you have done all of the rpmnew/rpmsave shuffling right? I have always thought a nice way to handle the rpmnew situation was that RPM would keep a pristine copy of all of the config files for currently installed packages tucked away somewhere out of the reach of the user. Then when a package is upgraded, if any config files from the "to-be-upgraded" version of the package were modified, before the new package is installed and the pristine copy of the config file is replaced with one from the new package, a diff is made between the current in-place config file and the pristine copy. Then when the package to be upgraded is installed, the diff that was made just previously is applied to newly installed config file. If it goes in cleanly, all is well, if not, a warning is given and the file is left in a "conflicted state". The latter portion of this is the ugly part. > something goes wrong, go back to a previous version with cvs. Presumably you would also tag the cvs repository at intervals, automatically, perhaps daily, so that if something is horribly wrong one day, you can compare the entire config of the system from a known good day to the currently bad day. CVS has the ability to do that without tags of course, but tagging at intervals of known working state would be useful. i.e. $ cvs tag "PRE_MDK9_0_UPGRADE" (IIR the syntax C) b. -- Brian J. Murrell
msg82581/pgp00000.pgp
Description: PGP signature
