<p>What is the best way to keep your configuration files (e.g httpd.conf, my.cnf, .bashrc ...) under version control?
In adition to the versioning benefit, I want the solution to work as backup as well, so that I can bring a brand new server and checkout (or export) the config files out of SVN directly</p>

<p>A good touch will be to store the config file`s original path as well.</p>

I do this for several machines, ranging from old Solaris 8 boxes to Mac OS X, and I have a really simple layout:
In my repository I have the following:
```
```
<root>/common
  /.emacs.d
  /.bash_common
  /scripts # platform-independent binary tools

<root>/linux
  .bashrc
  .emacs
  ...

<root>/solaris
  .bashrc
  .emacs
  ...

<root>/osx
  .bashrc
  .emacs
  ...
```
```
Each of the OS homedirs has an svn:externals reference to .emacs.d, .bash_common, and scripts, so those are not duplicated.
In addition, I have a .bash_hostconfig in the linux and solaris directories with host-specific path configuration and such, because I have a very different setup at work than I do at home (FC5-8 and RHEL3-5, depending on where I am).
So, between these things, I have a pretty simple process for getting up and running on a new machine:  I simply check out the /$platform into a temporary directory, and then overwrite everything in $HOME with those files.  I don't need to store the original path, because it's always relative to $HOME this way.