document 3-level trust

This commit is contained in:
Joey Hess 2011-01-26 14:09:06 -04:00
parent 07769fc949
commit f7e3d6eea2
4 changed files with 42 additions and 8 deletions

3
debian/changelog vendored
View file

@ -2,6 +2,9 @@ git-annex (0.19) UNRELEASED; urgency=low
* Support using the uuidgen command if the uuid command is not available. * Support using the uuidgen command if the uuid command is not available.
* Allow --exclude to be specified more than once. * Allow --exclude to be specified more than once.
* There are now three levels of repository trust.
* untrust: Now marks the current repository as untrusted.
* semitrust: Now restores the default trust level. (What untrust used to do.)
-- Joey Hess <joeyh@debian.org> Wed, 19 Jan 2011 18:07:51 -0400 -- Joey Hess <joeyh@debian.org> Wed, 19 Jan 2011 18:07:51 -0400

View file

@ -4,6 +4,7 @@ your git repository's `.git` directory, not in some external data store.
It's important that data not get lost by an ill-considered `git annex drop` It's important that data not get lost by an ill-considered `git annex drop`
command. So, then using those backends, git-annex can be configured to try command. So, then using those backends, git-annex can be configured to try
to keep N copies of a file's content available across all repositories. to keep N copies of a file's content available across all repositories.
(Although [[untrusted_repositories|trust]] don't count toward this total.)
By default, N is 1; it is configured by annex.numcopies. This default By default, N is 1; it is configured by annex.numcopies. This default
can be overridden on a per-file-type basis by the annex.numcopies can be overridden on a per-file-type basis by the annex.numcopies

View file

@ -183,12 +183,13 @@ Many git-annex commands will stage changes for later `git commit` by you.
* trust [repository ...] * trust [repository ...]
Records that a repository is [[trusted]] to not unexpectedly lose content. Records that a repository is [[trusted|trust]] to not unexpectedly lose
Use with care. content. Use with care.
* untrust [repository ...] * untrust [repository ...]
Undoes a trust command. Records that a repository is [[not trusted|trusted]] and could lose content
at any time.
* fromkey file * fromkey file

View file

@ -1,3 +1,11 @@
Git-annex supports three levels of trust of a repository:
* semitrusted (default)
* untrusted
* trusted
## semi-trusted
Normally, git-annex does not fully trust its stored [[location_tracking]] Normally, git-annex does not fully trust its stored [[location_tracking]]
information. When removing content, it will directly check information. When removing content, it will directly check
that other repositories have enough [[copies]]. that other repositories have enough [[copies]].
@ -7,14 +15,35 @@ Generally that explicit checking is a good idea. Consider that the current
out. Or, a remote may have suffered a catastrophic loss of data, or itself out. Or, a remote may have suffered a catastrophic loss of data, or itself
been lost. been lost.
Sometimes though, you may have reasons to trust the location tracking There is still some trust involved here. A semi-trusted repository is
information for a remote repository. For example, it may be an offline dependended on to retain a copy of the file content; possibly the only
[[copy|copies]].
(Being semitrusted is the default. The `git annex semitrust` command
restores a repository to this default, when it has been overridden.)
## untrusted
An untrusted repository is not trusted to retain data at all. Git-annex
will not count data in such a repository as a of the data, and will
retain sufficient [[copies]] elsewhere.
This is a good choice for eg, portable drives that could get lost. Or,
if a disk is known to be dying, you can set it to untrusted and let
`git annex fsck` warn about data that needs to be copied off it.
To configure a repository as untrusted, use the `git annex untrust`
command.
## trusted
Sometimes, you may have reasons to fully trust the location tracking
information for a repository. For example, it may be an offline
archival drive, from which you rarely or never remove content. Deciding archival drive, from which you rarely or never remove content. Deciding
when it makes sense to trust the tracking info is up to you. when it makes sense to trust the tracking info is up to you.
One way to handle this is just to use `--force` when a command cannot One way to handle this is just to use `--force` when a command cannot
access a remote you trust. access a remote you trust.
Another option is to configure which remotes you trust with the To configure a repository as fully trusted, use the `git annex trust`
`git annex trust` command, or by manually adding the UUIDs of trusted remotes command.
to `.git-annex/trust.log`.