This commit is contained in:
Joey Hess 2017-08-29 17:26:42 -04:00
parent 6ae9d8fe49
commit 74aa4c503b
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 25 additions and 6 deletions

View file

@ -206,15 +206,15 @@ there would be a merge conflict. Union merging would *scramble* the exported
tree, so even if a smart merge is added, old versions of git-annex would
corrupt the exported tree.
To avoid that problem, add a log file `exported/uuid.log` that lists
the sha1 of the exported tree and the uuid of the repository that exported it.
To avoid that problem, add a log file `export.log` that contains the uuid
of the remote that was exported to, and the sha1 of the exported tree.
To avoid the exported tree being GCed, do graft it in to the git-annex
branch, but follow that with a commit that removes the tree again,
and only update `refs/heads/git-annex` after making both commits.
If `exported/uuid.log` contains multiple active exports, there was an
export conflict. Short of downloading the whole export to checksum it,
or deleting the whole export, what can be done to resolve it?
If `export.log` contains multiple active exports of different trees,
there was an export conflict. Short of downloading the whole export to
checksum it, or deleting the whole export, what can be done to resolve it?
In this case, git-annex knows both exported trees. Have the user provide
a tree that resolves the conflict as they desire (it could be the same as

View file

@ -0,0 +1,6 @@
Put together a prototype of `git annex export` in the "export" branch.
Exporting to a directory special remote is basically working, but this is
only the beginning.
Today's work was sponsored by Jake Vosloo on
[Patreon](https://patreon.com/joeyh/)

View file

@ -176,10 +176,23 @@ File format is identical to preferred-content.log.
Contains standard preferred content settings for groups. (Overriding or
supplementing the ones built into git-annex.)
The file format is one line per group, staring with a timestamp, then a
The file format is one line per group, starting with a timestamp, then a
space, then the group name followed by a space and then the preferred
content expression.
## `export.log`
Tracks what trees have been exported to special remotes by
[[git-annex-export]](1).
Each line starts with a timestamp, then the uuid of the special remote,
followed by the sha1 of the tree that was exported to that special remote.
(The exported tree is also grafted into the git-annex branch, at
`export.tree`, to prevent git from garbage collecting it. However, the head
of the git-annex branch should never contain such a grafted in tree;
the grafted tree is removed in the same commit that updates `export.log`.)
## `aaa/bbb/*.log`
These log files record [[location_tracking]] information