Zero_Dogg

Random comments on geeky things

git-annex

I’ve recently given git-annex a try. It is based around the initially mind boggling concept of tracking files in git without checking them into git. In reality it’s not so strange. Git is great at tracking text files, and smaller binary files. But for many large files, it becomes inefficient, both because of its storage format and because it ends up storing two copies of each file. What git-annex does is keep track of various metadata in a separate branch, and just place symlinks to the real data in the main directory.

This opens up a bunch of possibilities. Ie. given that the files are outside of git, you can check out the entire tree without having the files there, and then you can tell git-annex to get the files. I already use git for most of my files, but for images, larger documents, music etc. it’s not really feasable. With git-annex though, it’s no longer a problem. I simply check the files that make sense into git, and the rest into git-annex (and having both kinds of checkins in a single repository is no problem). I now use git-annex to track my music collection, mail attachments (syncing from my server to desktops) and images.

Comments

If you have any comments, please don't hesitate to contact me via e-mail, IRC or IM.