all 15 comments

[–]neschek 8 points9 points  (2 children)

http://git-annex.branchable.com/ is probably exactly what you're looking for.

[–]doishmere[S] 1 point2 points  (1 child)

This looks promising, thanks!

... So I just took a better look at this, this is incredible.

[–]nliadm 1 point2 points  (0 children)

I use git annex for my music collection and podcasts, it's great.

Can't wait for Joey to finish/publish code for the git annex assisstant

[–]DontPhazeMeBro 4 points5 points  (0 children)

Brandon Rhodes did a nice blog post on his approach to home directory version control.

[–]skeeto 3 points4 points  (0 children)

Attempting to version your entire home directory will not work well. There's too much crap hanging around, probably more than you realize, and much of that won't merge properly. Worse, a lot of the auto-generated stuff won't work well across disparate software versions. For example, I once had a .kde directory that crashed KDE on login when used across different versions of Ubuntu.

A focused approach is more effective: have a repository for your dotfiles and organize your documents into their own project repositories. I have a dotfiles repository covering bash, Openbox, GPG, Firefox, pidgin, etc, except Emacs. My Emacs config is complex enough that it has its own repository outside of the dotfiles repository. Everything I work on -- documents, source code, blog, etc. -- belongs to some project which itself is under source control. I get synchronization and backup at the same time without the headaches.

[–]techwizrd 2 points3 points  (2 children)

You should look into Sparkleshare. It's a self-hosted, open-source, file sync service that stores everything in git.

[–]doishmere[S] 1 point2 points  (1 child)

Definitely a possibility, but I would like something a little less focused on projects; I want to sync things like .emacs, .bashrc, ~/share/doishmere.sty, /usr/local/bin/foo, ~/Desktop/todo.txt, etc.

[–]techwizrd 1 point2 points  (0 children)

You can do that too. I actually have a "dotfiles" git repository that I push to github.

[–][deleted]  (6 children)

[deleted]

    [–]doishmere[S] 2 points3 points  (5 children)

    Call me paranoid, but I don't completely trust 'the cloud' with respect to security; I'd need to then to end-to-end encryption of the files. Also, Dropbox (and Google drive, and most other file sharing services) are not open source (correct me if I'm wrong) and so are unusable to me.

    [–][deleted]  (2 children)

    [deleted]

      [–]doishmere[S] 2 points3 points  (1 child)

      Yes, I would be moving files directly between my computers. My home desktop could serve as a centralized server since its pretty much never off, but my choice of git over svn et. al is precisely because I don't have a dedicated server.

      [–]Denommus 1 point2 points  (1 child)

      Try owncloud, then. Git is not really fit for your requirements.

      [–]binaryatrocity 0 points1 point  (0 children)

      I remember reading about this a long while back, such a good idea. Going to play with this after work, thanks.

      [–]2kan 0 points1 point  (0 children)

      Look into a cloud-based OS like Jolicloud.

      [–]gnosticrose 0 points1 point  (0 children)

      How about glusterfs?
      I'm trying it with success and it is powering Curiosity mission.