Hacker News new | past | comments | ask | show | jobs | submit login
A better backup system based on Git (eigenclass.org)
22 points by mqt on March 5, 2008 | hide | past | favorite | 4 comments



Thanks! I've been looking for a backup tool.

Linus Torvalds uses git for Linux. Linus is cool as well as Linux is cool. So is finding unintended uses for things. Therefore, if I use this gibak program, I'll be cool^3.

It's simple math.


Cool.

Would it be possible to push it to S3 too? I'm not familiar with the internal structure of a git repo, would it involve reuploading the majority of the data on a commit?


This is a nice case study for OCaml.


The code has grown and become more complex in the last versions because I optimized it until directory traversal + glob matching got sensibly faster than Git's own (git-ls-files --exclude-standard doesn't do exactly the same thing as find-git-files, but meaningful performance comparisons can be done with the -d -o and -m -o options). It's still much smaller than metastore (1/3rd or so) even though it does much more now, however.

You can take a look at the initial version of ometastore here: http://eigenclass.org/repos/gitweb?p=gibak.git;a=blob;f=omet... The functionality from metastore takes ~270 lines vs. ~1500 lines of C, the support for .gitignore takes another 70locs.

It's got one or two bugs in the Gitignore support which I fixed later (and a silly bug in do_finally), but this code is simpler if you want to see what OCaml looks like in actual use (for a system tool, in this case). It's almost (if not actually, I don't remember) the "first version that typed", by the way.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: