summaryrefslogtreecommitdiff
path: root/doc/design/exporting_trees_to_special_remotes.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-07-11 16:31:30 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-07-11 16:31:30 -0400
commitcbe77cb87e1224fd88d4eabf00122e0ef48ba670 (patch)
tree0a33323a447ba353a81e18e810c690a715f8c689 /doc/design/exporting_trees_to_special_remotes.mdwn
parentd5243306e2fb52dcdcee14a925f32a2b0abde920 (diff)
improve
Diffstat (limited to 'doc/design/exporting_trees_to_special_remotes.mdwn')
-rw-r--r--doc/design/exporting_trees_to_special_remotes.mdwn15
1 files changed, 7 insertions, 8 deletions
diff --git a/doc/design/exporting_trees_to_special_remotes.mdwn b/doc/design/exporting_trees_to_special_remotes.mdwn
index 6ded07b6a..5864e2182 100644
--- a/doc/design/exporting_trees_to_special_remotes.mdwn
+++ b/doc/design/exporting_trees_to_special_remotes.mdwn
@@ -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,
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 this 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. Still graft in the exported tree at
-`exported/uuid/` (so it gets transferred to remotes and is not GCed).
-When looking up the exported tree, read the sha1 from the log file,
-and use it rather than what's currently grafted into the git-annex branch.
-(Old versions of git-annex would still union merge the exported tree,
-and the resulting junk would waste some space.)
+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 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,