This commit is contained in:
Joey Hess 2017-07-11 16:31:30 -04:00
parent adbd0ff068
commit 905b1108b7
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -156,14 +156,13 @@ but clocks vary too much to trust it.
Also, if the exported tree is grafted in to the git-annex branch, Also, if the exported tree is grafted in to the git-annex branch,
there would be a merge conflict. Union merging would *scramble* the exported 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 tree, so even if a smart merge is added, old versions of git-annex would
corrupt the exported tree. To avoid this problem, add a log file corrupt the exported tree.
`exported/uuid.log` that lists the sha1 of the exported tree and the uuid
of the repository that exported it. Still graft in the exported tree at To avoid that problem, add a log file `exported/uuid.log` that lists
`exported/uuid/` (so it gets transferred to remotes and is not GCed). the sha1 of the exported tree and the uuid of the repository that exported it.
When looking up the exported tree, read the sha1 from the log file, To avoid the exported tree being GCed, do graft it in to the git-annex
and use it rather than what's currently grafted into the git-annex branch. branch, but follow that with a commit that removes the tree again,
(Old versions of git-annex would still union merge the exported tree, and only update `refs/heads/git-annex` after making both commits.
and the resulting junk would waste some space.)
If `exported/uuid.log` contains multiple active exports, there was an If `exported/uuid.log` contains multiple active exports, there was an
export conflict. Short of downloading the whole export to checksum it, export conflict. Short of downloading the whole export to checksum it,