Git your configs backed up
Configuration files of integration and test servers are often accessible by all team members. This is a good thing, as changes to configuration can be made quickly without holding up the test process while having to wait for a system administrator to make the necessary changes.
But what I have often found is that the same servers seldom have proper backups of the important configuration files. I remember getting a lot of resistance from team members a few years ago when I suggested to use RCS to version control these files. RCS was not widely known and many found the syntax awkward, or at least hard to remember. But when I on top of this suggested to copy the configuration file tree to a disk on another server using rsync (to avoid the hassle of setting up a tape backup), I was sure to see my suggestion getting ignored.
Nowadays, git will easily perform both the version control task and the copy-to-remote-disk tasks. I use it for all my apache configuration files for example. One of the servers I administer acts as a proxy for several web applications that each are have very different virtual server configurations. With a version control for the entire tree in place it feels very relaxing making changes to individual applications when I know I can always roll back, should I mess up.
From my server with a real taped backup system in place I simply git pull my various git repositories using cron…and sleep well, knowing all my configuration changes are version controlled and backed up on tape.
Did you consider using Mercurial? If so, may I ask why you chose git?
No, I haven’t considered using Mercurial. The choice of git was the most convenient for me as I use it daily.
When developing, I like the how easy it is to change the history when using git. But those features have no bearing in this context. I’m sure Mercurial would do equally well.