Linux Distros with CVS/RCS for Config Files?
bergeron76 asks: "Does anyone know of a Linux distributions or modifications to a Linux d system that implement a CVS[like] structure for control over system configuration files (/etc, /usr/etc, and so on)? Personally, I'd love to see a distro that featured a native CVS/RCS control mechanism for editing system configuration files. Does anything like this currently exist? If not, is anyone working in this direction?"
nothing prevents you from just installing cvs and importing/checking out your config directories. i think it's really not that much work to justify a distro on its own.
Browse Slashdot at Funny+5, everything else -5. The only way to sustain it.
Why not just do it yourself? I keep all of my config files in CVS on my Debian and RedHat boxes. It's pretty easy to set things up to do this.
Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
Gentoo offers several choices in managing the configuration files in /etc, one of these options is the dispatch-conf script which keeps all changes in RCS. This is mostly for updating... so it's not everything, but it's definately a strong start and you could likely use the same system to keep track of your own modifications.
I touch computers in naughty places
Just go into your /etc/, do a 'mkdir RCS', and then start checking your config files in and out of RCS to edit them. There's no code anywhere in linux that says 'if there's a directory I don't recognize, then crash spectacularly', so just adding the RCS directory itself isn't going to adversely affect anything.
That's actually a really good idea, too, I'm not sure why I never thought of it myself...
I keep my entire home directory in a Subversion repository. Works great for linux and my windows boxes. Firefox and thunderbird user directories are compatible across platforms.
I just add 'svn up' to my login script and 'svn ci --message "%HOST%@%TIME%%DATE%"' to my logout script.
No reason it shouldn't work for a whole system with an initial 'svn up' somewhere in rc.local and periodic updates in a chron job. Just do a commit whenever you change things on your template system and 5 minutes later it'll be on all your boxen.
There was a slashdot article about putting a home directory under version control a few months ago from which I got the idea, too lazy to find the link at the moment though.
DONT PANIC
Larry McVoy designed BitKeeper with the specific aim of doing this. I believe they also offer special single-user free licenses for this; you may want to check the BitKeeper documentation to see if there are any Linux distributions who actually took him up on this.
--
Twoflower
so:
/
[user@localhost]# su
password:
[root@localhost]# cd
[root@localhost]# cvs import . -m 'my linux distro' mydistro username start
YEs, Gentoo can do this. Just emerge rcs, make an /etc/config-archive dir, setup /etc/dispatch-conf.conf, and just do dispatch-conf in place of etc-update.
Or am I just being impatient? Will Reiser4 provide this capability?
Method of processing duck feet
You should really check out a utility for FreeBSD called mergemaster. You run it after rebuilding/upgrading your system and it compares the latest "vanilla" system configuration files to what you've got.
You can choose to overwrite your file, keep your file or merge the two together. I like to think of it as the ultimate choice in system housekeeping.
As many people have pointed out having versioning on the config of a system is hardly a new idea. If you think about what might happen if you try to make this idea simple and easy to use it might end up being something like System Restore for Windows, which stores versions before updates, and if you're smart you make a check point before installing any questionable software or drivers. And then allows you to roll back if something goes wrong and the uninstall doesn't fix it.
changetrack uses RCS as it's backend, not CVS (support for CVS is on the Todo list), but the end result is the same. It is specifically intended for tracking system files like those in
Topher
Gentoo does this for your files in /etc. Use dispatch-conf and forget about etc-update. You can set it to use RCS, so no more overwrites of your configs.
Sig? What sig?
This issue is going to happen on Gentoo because of how devfsd's configuration is built.
/etc/profile.d and /etc/env.d. A coding change on "etc-update" would probably solve the /etc/devfsd.d screwup.
Actually, something similar could conceivably go wrong with
"The Devil does not know a lot because He's the Devil, He knows a lot because he's old." -- unknown
At work, we have a simple wrapper for vim that does all of the RCS stuff for us, like checking in and checking out files. We use it on all of our production servers, as it gives use nice revision control over our files.
I keep my entire home directory in a Subversion repository.
:o)
Funny, when I first read that, I thought it said Rebversion...
And I thought "Yikes! So that's what happened to the Goatse guy."
You'll spend years fooling around with RCS and CVS for configuration versioning before realizing that what you really need is cfengine. CVS or svn for source code, cfengine for configuration. Cut to the chase:
http://www.cfengine.org/
Brandon D. Valentine
there is a wrapper type thing for vi called rvi that automates this on any unix machine:
1 4/ static/home/rvi/
http://www.cs.ru.ac.za/research/students/g98t44