summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/design/assistant/blog/day_95__repository_groups.mdwn21
-rw-r--r--doc/design/assistant/transfer_control.mdwn15
-rw-r--r--doc/git-annex.mdwn15
-rw-r--r--doc/internals.mdwn8
4 files changed, 51 insertions, 8 deletions
diff --git a/doc/design/assistant/blog/day_95__repository_groups.mdwn b/doc/design/assistant/blog/day_95__repository_groups.mdwn
new file mode 100644
index 000000000..5e4bc6d20
--- /dev/null
+++ b/doc/design/assistant/blog/day_95__repository_groups.mdwn
@@ -0,0 +1,21 @@
+Spent a lot of time this weekend thinking about/stuck on the [[cloud]]
+notification problem. Currently IRC is looking like the best way for
+repositories to notify one-another when changes are made, but I'm not sure
+about using that, and not ready to start on it.
+
+Instead, laid some groundwork for [[transfer_control]] today. Added
+some simple commands to manage groups of repositories, and find files
+that are present in repositories in a group. I'm not completely happy
+with the syntax for that, and need to think up some good syntax to specify
+files that are present in *all* repositories in a group.
+
+The plan is to have the assistant automatically guess at groups to put new
+repositories it makes in (it should be able to make good guesses),
+as well as have an interface to change them, and an interface to configure
+transfer control using these groups (and other ways of matching files).
+And, probably, some canned transfer control recipes for common setups.
+
+---
+
+Collected up the past week's work and made a release today. I'm probably
+back to making regular releases every week or two.
diff --git a/doc/design/assistant/transfer_control.mdwn b/doc/design/assistant/transfer_control.mdwn
index 179ec6207..070b12246 100644
--- a/doc/design/assistant/transfer_control.mdwn
+++ b/doc/design/assistant/transfer_control.mdwn
@@ -31,10 +31,10 @@ It may make sense to have annex-accept info also be stored in the git-annex
branch, for settings that should apply to a repo globally. Does it make
sense to have local configuration too?
-## repo classes
+## repo groups
-Seems like git-annex needs a way to know the classes of repos. Some
-classes:
+Seems like git-annex needs a way to know the groups of repos. Some
+groups:
* enduser: The user interacts with this repo directly.
* archival: This repo accumulates stuff, and once it's in enough archives,
@@ -43,18 +43,17 @@ classes:
it does not hold data for long periods of time, and tends to have a
limited size.
-Add a class.log that can assign repos to these or other classes.
-(Should a repo be allowed to be in multiple classes?)
+Add a group.log that can assign repos to these or other groups. **done**
-Some examples of using classes:
+Some examples of using groups:
* Want to remove content from a repo, if it's not an archival repo,
and the content has reached at least one archival repo:
- `(not class=archival) and (not copies=archival:1)`
+ `(not group=archival) and (not copies=archival:1)`
That would make send to configure on all repos, or even set
- a global `annex.accept` to it.
+ a global `annex.accept` to it. **done**
* Make a cloud repo only hold data until all known clients have a copy:
diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn
index c1bbb8259..5a0f0569b 100644
--- a/doc/git-annex.mdwn
+++ b/doc/git-annex.mdwn
@@ -248,6 +248,15 @@ subdirectories).
Indicates that the repository has been irretrevably lost.
(To undo, use semitrust.)
+* group repository groupname
+
+ Adds a repository to a group, such as "archival", "enduser", or "transfer".
+ The groupname must be a single word.
+
+* ungroup repository groupname
+
+ Removes a repository from a group.
+
# REPOSITORY MAINTENANCE COMMANDS
* fsck [path ...]
@@ -616,6 +625,12 @@ file contents are present at either of two repositories.
copies, on remotes with the specified trust level. For example,
"--copies=trusted:2"
+* --copies=groupname:number
+
+ Matches only files that git-annex believes have the specified number of
+ copies, on remotes in the specified group. For example,
+ "--copies=archival:2"
+
* --inbackend=name
Matches only files whose content is stored using the specified key-value
diff --git a/doc/internals.mdwn b/doc/internals.mdwn
index a69a747e5..26e1d2fc2 100644
--- a/doc/internals.mdwn
+++ b/doc/internals.mdwn
@@ -67,6 +67,14 @@ Example:
Repositories not listed are semi-trusted.
+## `group.log`
+
+Used to group repositories together.
+
+The file format is one line per repository, with the uuid followed by a space,
+and then a space-separated list of groups this repository is part of,
+and finally a timestamp.
+
## `aaa/bbb/*.log`
These log files record [[location_tracking]] information