I have several different environments I work in, and several different sets of dot-files I use in each.
Consider the example (simplified scenario). I have 3 environments:
and I have some dotfiles, which I want to replicate in different environments.
.tmuxrc--> work-desktop, work-server, home-desktop
.subversion/--> work-desktop, work-sever
- A different
.zshrcfor each of work-desktop, work-sever and home-desktop
.vimrcfor work-desktop and work-server, and another
Later I might like to change thing so that, I have one
.vimrc for everywhere (when I update my homeone to use vundle, and unbreak vim's python compat at work).
- Must support specifying different files for different environments
- Must support some files being shared across some environments
- Must avoid me having to manually copy files and then symlink them back
- Should commit to version control when triggered
- Should pull from version control when an update is called.
- Should support git
- Would be nice if it supported other version control (like SVN, and Hg)
- Would be nice if its config file for specifying which files got to which environments took a list of hostnames, but other solutions to the exist.
Don't care if it is dependent on anything (A lot of .dotfile management tools i looked at advertised not being dependent on anything but the shell)
Must work on all flavours of Linux (but I don't really care about Mac).
- Must be Free and Open Source.