summaryrefslogtreecommitdiff
path: root/doc/preferred_content.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-10-10 13:52:24 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-10-10 13:54:40 -0400
commita5c3a2fbf523a22fbfcc7b7d419a56b88e6d8d12 (patch)
treef6e8474444dca5938ab991136932ba71d6873561 /doc/preferred_content.mdwn
parentcf30e43a0d5d0c3c76d25daca678ec8cc80dc814 (diff)
standard preferred content settings for client, transfer, backup, and archive repositories
I've designed these to work well together, I hope. If I get it wrong, I can just change the code in one place, since these expressions won't be stored in the git-annex branch.
Diffstat (limited to 'doc/preferred_content.mdwn')
-rw-r--r--doc/preferred_content.mdwn46
1 files changed, 44 insertions, 2 deletions
diff --git a/doc/preferred_content.mdwn b/doc/preferred_content.mdwn
index 7c7d11267..c130a07e6 100644
--- a/doc/preferred_content.mdwn
+++ b/doc/preferred_content.mdwn
@@ -28,10 +28,52 @@ The equivilant preferred content expression looks like this:
So, just remove the dashes, basically.
+## file matching
+
Note that while --include and --exclude match files relative to the current
directory, preferred content expressions always match files relative to the
-top of the git repository. Perhaps you put files into `out/` directories
+top of the git repository. Perhaps you put files into `archive` directories
when you're done with them. Then you could configure your laptop to prefer
to not retain those files, like this:
- exclude=*/out/*
+ exclude=*/archive/*
+
+## standard expressions
+
+git-annex comes with some standard preferred content expressions, that can
+be used with repositories that are in some pre-defined groups. To make a
+repository use one of these, just set its preferred content expression
+to "standard", and put it in one of these groups:
+
+### client
+
+All content is preferred, unless it's in a "archive" directory.
+
+`exclude=*/archive/*`
+
+### transfer
+
+Use for repositories that are used to transfer data between other
+repositories, but do not need to retain data themselves. For
+example, a repository on a server, or in the cloud, or a small
+USB drive used in a sneakernet.
+
+The preferred content expression for these causes them to get and retain
+data until all clients have a copy.
+
+`not inallgroup=client and exclude=*/archive/*`
+
+### archive
+
+All content is preferred, unless it's already been archived somewhere else.
+
+`not copies=archive:1`
+
+Note that if you want to archive multiple copies (not a bad idea!),
+you should instead configure all your archive repositories with a
+version of the above preferred content expression with a larger
+number of copies.
+
+### backup
+
+All content is preferred.