summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-04-05 12:50:02 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-04-05 12:50:02 -0400
commit2ccd9c5e7cf3266d2270741e1535d78350afcee9 (patch)
tree3e933e4ccf7f53f7f9972fc6c01d6de83d643d28 /doc
parentb855580614852c7558fb2aad387609d15c4b0c6b (diff)
rethought distributed fsck; instead add activity.log and expire command
This is much more space efficient!
Diffstat (limited to 'doc')
-rw-r--r--doc/git-annex-expire.mdwn61
-rw-r--r--doc/git-annex-fsck.mdwn38
-rw-r--r--doc/git-annex.mdwn5
-rw-r--r--doc/internals.mdwn8
4 files changed, 74 insertions, 38 deletions
diff --git a/doc/git-annex-expire.mdwn b/doc/git-annex-expire.mdwn
new file mode 100644
index 000000000..ff167804a
--- /dev/null
+++ b/doc/git-annex-expire.mdwn
@@ -0,0 +1,61 @@
+# NAME
+
+git-annex expire - expire inactive repositories
+
+# SYNOPSIS
+
+git annex expire `[repository:]time ...`
+
+# DESCRIPTION
+
+This command expires repositories that have not performed some activity
+within a specified time period. A repository is expired by marking it as
+dead. De-expiration is also done; if a dead repository performed some
+activity recently, it is marked as semitrusted again.
+
+This can be useful when it's not possible to keep track of the state
+of repositories manually. For example, a distributed network of
+repositories where nobody can directly access all the repositories to
+check their status.
+
+The repository can be specified using the name of a remote,
+or the description or uuid of the repository.
+
+The time is in the form "60d" or "1y". A time of "never" will disable
+expiration.
+
+If a time is specified without a repository, it is used as the default
+value for all repositories. Note that the current repository is never
+expired.
+
+# OPTIONS
+
+* `--activity=Name`
+
+ Specify the activity that a repository must have performed to avoid being
+ expired. The default is any activity.
+
+ Currently, the only activity that can be performed to avoid expiration
+ is `git annex fsck`. Note that fscking a remote updates the
+ expiration of the remote repository, not the local repository.
+
+ The first version of git-annex that recorded fsck activity was
+ 5.20150405.
+
+# SEE ALSO
+
+[[git-annex]](1)
+
+[[git-annex-fsck]](1)
+
+[[git-annex-schedule]](1)
+
+[[git-annex-dead]](1)
+
+[[git-annex-semitrust]](1)
+
+# AUTHOR
+
+Joey Hess <id@joeyh.name>
+
+Warning: Automatically converted into a man page by mdwn2man. Edit with care.
diff --git a/doc/git-annex-fsck.mdwn b/doc/git-annex-fsck.mdwn
index 1f5d75f3e..cb27fe452 100644
--- a/doc/git-annex-fsck.mdwn
+++ b/doc/git-annex-fsck.mdwn
@@ -53,44 +53,6 @@ With parameters, only the specified files are checked.
git annex fsck --incremental-schedule 30d --time-limit 5h
-* `--distributed`
-
- Normally, fsck only fixes the git-annex location logs when an inconsistecy
- is detected. In distributed mode, each file that is checked will result
- in a location log update noting the time that it was present.
-
- This is useful in situations where repositories cannot be trusted to
- continue to exist. By running a periodic distributed fsck, those
- repositories can verify that they still exist and that the information
- about their contents is still accurate.
-
- This is not the default mode, because each distributed fsck increases
- the size of the git-annex branch. While it takes care to log identical
- location tracking lines for all keys, which will delta-compress well,
- there is still overhead in committing the changes. If this causes
- the git-annex branch to grow too big, it can be pruned using
- [[git-annex-forget]](1)
-
-* `--expire="[repository:]time`..."
-
- This option makes the fsck check for location logs of the specified
- repository that have not been updated by a distributed fsck within the
- specified time period. Such stale location logs are then thrown out, so
- git-annex will no longer think that a repository contains data, if it is
- not participating in distributed fscking.
-
- The repository can be specified using the name of a remote,
- or the description or uuid of the repository. If a time is specified
- without a repository, it is used as the default value for all
- repositories. Note that location logs for the current repository are
- never expired, since they can be verified directly.
-
- The time is in the form "60d" or "1y". A time of "never" will disable
- expiration.
-
- Note that a remote can always run `fsck` later on to re-update the
- location log if it was expired in error.
-
* `--numcopies=N`
Override the normally configured number of copies.
diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn
index 27439cd3a..11fbc6e01 100644
--- a/doc/git-annex.mdwn
+++ b/doc/git-annex.mdwn
@@ -302,6 +302,11 @@ subdirectories).
See [[git-annex-fsck]](1) for details.
+* `expire [repository:]time ...`
+
+ Expires repositories that have not recently performed an activity
+ (such as a fsck).
+
* `unused`
Checks the annex for data that does not correspond to any files present
diff --git a/doc/internals.mdwn b/doc/internals.mdwn
index 824655a92..7e8f4b19a 100644
--- a/doc/internals.mdwn
+++ b/doc/internals.mdwn
@@ -247,6 +247,14 @@ Example:
42bf2035-0636-461d-a367-49e9dfd361dd fsck self 30m every day at any time; fsck 4b3ebc86-0faf-4892-83c5-ce00cbe30f0a 1h every year at any time timestamp=1385646997.053162s
+## `activity.log`
+
+Used to record the times of activities, such as fscks.
+
+Example:
+
+ 42bf2035-0636-461d-a367-49e9dfd361dd Fsck timestamp=1422387398.30395s
+
## `transitions.log`
Used to record transitions, eg by `git annex forget`