diff options
-rw-r--r-- | doc/design/exporting_trees_to_special_remotes.mdwn | 10 | ||||
-rw-r--r-- | doc/devblog/day_466__export_prototype.mdwn | 6 | ||||
-rw-r--r-- | doc/internals.mdwn | 15 |
3 files changed, 25 insertions, 6 deletions
diff --git a/doc/design/exporting_trees_to_special_remotes.mdwn b/doc/design/exporting_trees_to_special_remotes.mdwn index 9327b475f..39c291c54 100644 --- a/doc/design/exporting_trees_to_special_remotes.mdwn +++ b/doc/design/exporting_trees_to_special_remotes.mdwn @@ -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 diff --git a/doc/devblog/day_466__export_prototype.mdwn b/doc/devblog/day_466__export_prototype.mdwn new file mode 100644 index 000000000..cdc1926f8 --- /dev/null +++ b/doc/devblog/day_466__export_prototype.mdwn @@ -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/) diff --git a/doc/internals.mdwn b/doc/internals.mdwn index 4ed8001d4..7d39b1068 100644 --- a/doc/internals.mdwn +++ b/doc/internals.mdwn @@ -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 |