versioning system with less duplication of data

Disks are cheap; networks are fast; data loss is no fun (been there, lost a couple of weeks of work). Having a repository in a separate location is a feature, not a bug. It costs pennies and can save you a lot of grief.

That said, if you really want to go down that path, maybe you can look at using a modern filesystem with built-in snapshotting. On Solaris I've used ZFS snapshotting as a poor-man's version control for years. On Linux, btrfs may well be getting close to usable.


Have you considered etckeeper?

It is an "in-place" versioning system which can rely (see its configuration) on most DVCS (hg, git, bzr or darcs).

It automatically versions all your files in /etc and commits them automatically every time they are modified.

Since it relies on DVCS, you could even use it to duplicate/backup your configuration using push/pull/mirror/etc. commands (depending on the DVCS backend you choose).


Actually that's not that abnormal. There isn't any functional problem with handling things that way. Most VCS don't deal particularly well with tracking changes in a binary, so it's of less use for tracking changes, but it would still work. If you use a DVCS then you gain some protection against a single system failure. git or mercurial should be available for RH without too much trouble and either should work well for your needs, as would svn.