summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-04-06 15:36:17 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-04-06 15:36:17 -0400
commitb157e7c0d42bdf1b5fe6c840d97a733e36b9a066 (patch)
tree2c2009898cdf974e24f2681dc2f2692a2ef73225 /doc
parentbc05a3f5d1c9ec12a7caec8f378ba7239f7b39a9 (diff)
add an idea developed with liw
Diffstat (limited to 'doc')
-rw-r--r--doc/todo/assistant_smarter_archive_directory_handling.mdwn29
1 files changed, 29 insertions, 0 deletions
diff --git a/doc/todo/assistant_smarter_archive_directory_handling.mdwn b/doc/todo/assistant_smarter_archive_directory_handling.mdwn
new file mode 100644
index 000000000..f464c182b
--- /dev/null
+++ b/doc/todo/assistant_smarter_archive_directory_handling.mdwn
@@ -0,0 +1,29 @@
+Client repos do not want files in archive directories. This can turn
+out to be confusing to users who are using archive directories for their
+own purposes and not aware of this special case in the assistant. It can
+seem like the assistant is failing to sync their files.
+
+I thought, first, that it should have a checkbox to enable the archive
+directory behavior.
+
+However, I think I have a better idea. Change the preferred content
+expression for clients, so they want files in archive directories, *until*
+those files land in an archive.
+
+This way, only users who set up an archive repo get this behavior. And they
+asked for it by setting up that repo!
+
+Also, the new behavior will mean that files in archive directories still
+propigate around to clients. Consider this topology:
+
+ client A ---- client B ---- archive
+
+If a file is created in client A, and moved to an archive directory before
+it syncs to B, it will never get to the archive, and will continue wasting
+space on A. With the new behavior, A and B serve as effectively, transfer
+repositories for archived content.
+
+Something vaguely like this should work as the preferred content
+expression for the clients:
+
+ exclude=archive/* or (include=archive/* and (not (copies=archive:1 or copies=smallarchive:1)))