git-annex/doc/not.mdwn
2011-03-04 12:31:01 -04:00

40 lines
2 KiB
Markdown

[[!meta title="what git-annex is not"]]
* git-annex is not a backup system. It may be a useful component of an
[[archival|use_case/bob]] system, or a way to deliver files to a backup
system.
For a backup system that uses git, take a look at
[bup](http://github.com/apenwarr/bup).
* git-annex is not unison, but if you're finding unison's checksumming
too slow, or its strict mirroring of everything to both places too
limiting, then git-annex could be a useful alternative.
* git-annex is more than just a workaround for git limitations that might
eventually be fixed by efforts like
[git-bigfiles](http://caca.zoy.org/wiki/git-bigfiles).
* git-annex is not some flaky script that was quickly thrown together.
I wrote it in Haskell because I wanted it to be solid and to compile
down to a binary. And it has a fairly extensive test suite. (Don't be
fooled by "make test" only showing a few dozen test cases; each test
involves checking dozens to hundreds of assertions.)
* git-annex is not [git-media](https://github.com/schacon/git-media),
although they both approach the same problem from a similar direction.
I only learned of git-media after writing git-annex, but I probably
would have still written git-annex instead of using it. Currently,
git-media has the advantage of using git smudge filters rather than
git-annex's pile of symlinks, and it may be a tighter fit for certain
situations. It lacks git-annex's support for widely distributed storage,
using only a single backend data store. It also does not support
partial checkouts of file contents, like git-annex does.
* git-annex is also not [boar](http://code.google.com/p/boar/),
although it shares many of its goals and characteristics. Boar implements
its own version control system, rather than simply embarcing and
extending git. And while boar supports distributed clones of a repository,
it does not support keeping different files in different clones of the
same repository, which git-annex does, and is an important feature for
large-scale archiving.