etckeeper - revision control for /etc/
etckeeper tracks changes to configuration files by putting /etc/ nto revision conrol using git, mercurial, darcs, or bzr.
etckeeper also ties into package management systems such as apt, yum and pacman-g2 for automagic checkins after package installs, updates and removals.
Use the version control system (VCS) you know and let etckeeper help you with some of the oddities found in /etc/.
Some important metadata such as file permissions and ownership often is not tracked by a VCS. Same for empty directories. Both metadata and empty directories in /etc/ can be crucial, so etckeeper tracks them seperately and keeps that tracking data in the VCS. etckeeper will also issue warnings about special files such as unix sockets, named pipes and hardlinks that are normally not tracked by VCSen.
Using version control on /etc/ poses several challenges. etckeeper does a great job of helping you work through them and track changes made to your operating system. The documentation also helps with secure handling of the repositories.