Keeping dot files synched across machines?

I've had pretty good luck keeping my files under a revision control system. It's not for everyone, but most programmers should be able to appreciate the benefits. Read

Keeping Your Life in Subversion

for an excellent description, including how to handle non-dotfile configuration (like cron jobs via the svnfix script) on multiple machines.


I also use subversion to manage my dotfiles. When I login to a box my confs are automagically updated for me. I also use github to store my confs publicly. I use git-svn to keep the two in sync.

Getting up and running on a new server is just a matter of running a few commands. The create_links script just creates the symlinks from the .dotfiles folder items into my $HOME, and also touches some files that don't need to be checked in.

$ cd

# checkout the files
$ svn co https://path/to/my/dotfiles/trunk .dotfiles

# remove any files that might be in the way
$ .dotfiles/create_links.sh unlink

# create the symlinks and other random tasks needed for setup
$ .dotfiles/create_links.sh

It seems like everywhere I look these days I find a new thing that makes me say "Hey, that'd be a good thing to use DropBox for"


Rsync is about your best solution. Examples can be found here:

http://troy.jdmz.net/rsync/index.html