summaryrefslogtreecommitdiff
path: root/doc/design/preferred_content.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-01-22 15:55:44 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-01-22 15:55:44 -0400
commit9a5de318d15f0234080a6f0bd802fe073cf57334 (patch)
treedf77d2f8474a4bc36b316d0ac28c5af886b9aed4 /doc/design/preferred_content.mdwn
parentcc366b8241cfc3e41252ecd2624332c15da03377 (diff)
preferred content stability analysis
Diffstat (limited to 'doc/design/preferred_content.mdwn')
-rw-r--r--doc/design/preferred_content.mdwn21
1 files changed, 21 insertions, 0 deletions
diff --git a/doc/design/preferred_content.mdwn b/doc/design/preferred_content.mdwn
new file mode 100644
index 000000000..3972b8b58
--- /dev/null
+++ b/doc/design/preferred_content.mdwn
@@ -0,0 +1,21 @@
+The [[preferred_content]] expressions didn't have a design document, but
+it's a small non-turing complete DSL for expressing which objects a
+repository prefers to contain.
+
+One thing that needs to be written down though is the stability analysis
+that must be done of preferred content expressions.
+
+It's important that when a set of repositories all look at one-another's
+preferred content expressions, and copy/move/drop objects to satisfy them,
+they end up at a steady state. So, a given preferred content expression
+should ideally evaluate to the same answer for each key, from the
+perspective of each repository.
+
+The best way to ensure that is the case is to only use terms in preferred
+content expressions that rely on state that is shared between all
+repositories. So, state in the git-annex branch, or the master branch
+(assuming all repositories have master checked out).
+
+Since git is eventually consistent, there might be disagreements about
+which object belongs where, but once consistency is reached, things will
+settle down.