summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-09-04 16:39:56 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-09-04 16:39:56 -0400
commit0f9282d22dc773bd57f3482b79dd976316ec0467 (patch)
treef0920aab9f59dda9674a995b33936e1379bab515 /doc
parent25ed1e54abcc25f729fed016ec77a8cd049142fa (diff)
git annex get from exports
Straightforward enough, except for the needed belt-and-suspenders sanity checks to avoid foot shooting due to exports not being key/value stores. * Even when annex.verify=false, always verify from exports. * Only get files from exports that use a backend that supports checksum verification. * Never trust exports, even if the user says to, because then `git annex drop` would drop content if the export seemed to contain a copy. This commit was supported by the NSF-funded DataLad project.
Diffstat (limited to 'doc')
-rw-r--r--doc/git-annex-export.mdwn15
-rw-r--r--doc/todo/export.mdwn4
2 files changed, 14 insertions, 5 deletions
diff --git a/doc/git-annex-export.mdwn b/doc/git-annex-export.mdwn
index abe00f09b..c8d8eac9a 100644
--- a/doc/git-annex-export.mdwn
+++ b/doc/git-annex-export.mdwn
@@ -11,11 +11,11 @@ git annex export `treeish --to remote`
Use this command to export a tree of files from a git-annex repository.
Normally files are stored on a git-annex special remote named by their
-keys. That is great for data storage, but your filenames are obscured.
-Exporting replicates the tree to the special remote as-is.
+keys. That is great for reliable data storage, but your filenames are
+obscured. Exporting replicates the tree to the special remote as-is.
-Mixing key/value and exports in the same remote would be a mess and so is
-not allowed. So, you have to configure a remote with `exporttree=yes`
+Mixing key/value storage and exports in the same remote would be a mess and
+so is not allowed. You have to configure a remote with `exporttree=yes`
when initially setting it up with [[git-annex-initremote]](1).
Repeated exports are done efficiently, by diffing the old and new tree,
@@ -24,6 +24,13 @@ and transferring only the changed files.
Exports can be interrupted and resumed. However, partially uploaded files
will be re-started from the beginning.
+Once content has been exported to a remote, commands like `git annex get`
+can download content from there the same as from other remotes. However,
+since an export is not a key/value store, git-annex has to do more
+verification of content downloaded from an export. Some types of keys,
+that are not based on checksums, cannot be downloaded from an export.
+And, git-annex will never trust an export to retain the content of a key.
+
# SEE ALSO
[[git-annex]](1)
diff --git a/doc/todo/export.mdwn b/doc/todo/export.mdwn
index 99877423b..5813cd869 100644
--- a/doc/todo/export.mdwn
+++ b/doc/todo/export.mdwn
@@ -17,7 +17,9 @@ there need to be a new interface in supported remotes?
Work is in progress. Todo list:
-* Use retrieveExport when getting from export remotes.
+* `git annex get --from export` works in the repo that exported to it,
+ but in another repo, the export db won't be populated, so it won't work.
+ Maybe just show a useful error message in this case?
* Efficient handling of renames.
* Support export to aditional special remotes (S3 etc)
* Support export to external special remotes.