Git aux
For a while now, I’ve been wanting to keep various parts of my home directory in sync.
At first, I created a git repository for storing my dotfiles but I found it a pain to keep the repository up-to-date.
Fairly recently, someone pointed out git-annex to me. After a good read of the documentation, it sounded like it could be useful but probably more than I needed and perhaps not quite what I really wanted. Besides, I couldn’t get the bloody thing to install.
So I did what any geek would do, I wrote my own :D
See git-aux (or AUR if you’re on Arch Linux).
Basically, I wanted an easy to way to keep a git repository in sync with an directory external to it. With git aux installed, I get pretty much exactly what I wanted with a few simple commands.
After creating a new git repository, I do git aux init ~/
to tell
git-aux that I want it to sync this repo with my home directory.
I then do git aux add ~/.vimrc ~/.ssh/config ~/.bashrc
and any other
files I want from my home directory. This copies those files into the
repository and I can then commit them in the usual way.
If I make changes in my home directory, I use git aux sync
to update
the copies in the repository.
If I’ve made changes on another machine and want to apply those changes
from the repo to the home dir on this machine, I do git aux apply
.
And that’s it :)
It’s unfinished and probably broken in places but mostly does what I was looking for.