I have tested this at home (~ 3 hosts) for some time now, trying different
scms (RCS, Subversion, git). The setup that works perfectly for me right now is git with
Things you need to consider:
Handling of file permissions and ownership
- RCS: does this natively
- Subversion: last I tried, you needed a wrapper around
svn to do this
- git: the
setgitperms hook handles this transparently (needs a fairly
recent version of git with support for
post-checkout hooks, though)
Also, if you don't want to all of your
/etc under version control, but only
the files that you actually modified (like me), you'll need an scm that
supports this kind of use.
- RCS: works only on single files anyway.
- Subversion: I found this to be tricky.
- git: no probem, put "
*" in the top-level
.gitignore file and add only those
files you want using
git add --force
Finally, there are some problematic directories under
/etc where packages can drop
config snippets that are then read by some program or daemon (
/etc/modprobe.d, etc.). Some of these programs are smart enough to ignore
RCS files (e.g. cron), some are not (e.g. modprobe). Same thing with
directories. Again a big plus for git (only creates one top-level