top | item 3416719

Git dotfiles without the bloat (rake, yadr, make, kitchen sink)

10 points| jpiasetz | 14 years ago |blog.piasetzki.name | reply

19 comments

order
[+] sciurus|14 years ago|reply
This really is super-simple, and I like that. However, it doesn't handle configuration files that don't go directly in your home directory, such as $HOME/.ssh/config. I wrote something a few weeks ago which does that while remaining conceptually very simple. You can get it at https://github.com/sciurus/dotfile_management
[+] shtylman|14 years ago|reply
Why not just have a git repo working copy in your $HOME directory? That way you can avoid any symlinking mess. The actual dotfiles are the ones from the working copy.

I used to do symlinking but found the working copy in $HOME approach much better.

[+] fr0sty|14 years ago|reply
That could work, but where would the .git/ directory be? If you have in $HOME/.git you are inviting disaster with an errant 'git clean...' command. If not you need to deal with managing the options/environment to make the git commands work (though that could be scripted).

I'm curious about this too since something dead simple (and reasonably idiot-proof) would be useful to me as well.

[+] jpiasetz|14 years ago|reply
It's a bit of a trade off between symlinking mess and .git mess. I just prefer a cleaner home folder. I did try it all in home for a bit.
[+] joeyh|14 years ago|reply
Fails to delete symlinks to removed dotfiles. Doesn't support splitting dotfiles amoung multiple repositories.

I feel that the right solution to this is going to be vcsh.https://github.com/RichiH/vcsh No symlinks to dotfiles, all the files live in $HOME, but vcsh can be used to switch between accessing different git repositories that contain different of the dotfiles. http://vcs-home.branchable.com/ has more.

(Also, rake? yadr? vcsh is a posix shell script.)

[+] sciurus|14 years ago|reply
Sure it supports splitting dotfiles among multiple repositories. Just create multiple repositories and change the path in the post-commit hook. Deleting symlinks would be nice, but I'm not sure it's worth the complexity implementing it would add.

vcsh sounds like a neat system if you need to have multiple repositories with the same working directory, but I don't understand the advantages of this for managing your dotfiles. My eyes glazed over when reading about the proposed system in section 3.2 of the README.

[+] uncr3ative|14 years ago|reply
I want to be able to manage other config files that aren't in my home directory at all. Some of them are even owned by root: httpd-vhosts.conf, /etc/hosts, php.ini... any good solution for that? I'm willing for it to be complex if it works.
[+] graysnorf|14 years ago|reply
Manage in what sense? If you're trying to sync. between multiple machines, one approach is to check in the /etc files in your home dir and symlink. Or are you looking for something else?
[+] bostonvaulter2|14 years ago|reply
I just move those into my ~/config git directory and symlink them from there.
[+] g3orge|14 years ago|reply
I can't see the whole line of the code.
[+] jpiasetz|14 years ago|reply
Fixed. It's also in the git repo.