aboutsummaryrefslogtreecommitdiff
path: root/doc/backends.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-10-19 15:59:40 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-10-19 15:59:40 -0400
commit7bc4435ffdc1760a7ac8638cdc1cfac78aebaabb (patch)
treeaf591561fa5bf30c82e9fcbb3c83130edad5bcaf /doc/backends.mdwn
parent6ef1c2d2daf37dc92b4c364ea34802b62688018b (diff)
update
Diffstat (limited to 'doc/backends.mdwn')
-rw-r--r--doc/backends.mdwn21
1 files changed, 21 insertions, 0 deletions
diff --git a/doc/backends.mdwn b/doc/backends.mdwn
new file mode 100644
index 000000000..d3ccaec49
--- /dev/null
+++ b/doc/backends.mdwn
@@ -0,0 +1,21 @@
+git-annex uses a key-value abstraction layer to allow file contents to be
+stored in different ways. In theory, any key-value storage system could be
+used to store file contents.
+
+When a file is annexed, a key is generated from its content and/or metadata.
+The file checked into git symlinks to the key. This key can later be used
+to retrieve the file's content (its value).
+
+Multiple pluggable backends are supported, and more than one can be used
+to store different files' contents in a given repository.
+
+* `WORM` ("Write Once, Read Many") This backend stores the file's content
+ only in `.git/annex/`, and assumes that any file with the same basename,
+ size, and modification time has the same content. So with this backend,
+ files can be moved around, but should never be added to or changed.
+ This is the default, and the least expensive backend.
+* `SHA1` -- This backend stores the file's content in
+ `.git/annex/`, with a name based on its sha1 checksum. This backend allows
+ modifications of files to be tracked. Its need to generate checksums
+ can make it slower for large files.
+* `URL` -- This backend downloads the file's content from an external URL.