diff options
author | Joey Hess <joey@kitenet.net> | 2012-12-10 14:47:30 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-12-10 14:47:30 -0400 |
commit | d66a0265a239b52a0f82dbf648f6dfccfe2eed9c (patch) | |
tree | a61926b9685eccb75cd515c4e216c6dc0874a377 /doc | |
parent | 9072a2a8370559cd03824fba62aefd9228a7e497 (diff) | |
parent | 469c76acddcd972da018542e7791a74c5a40c935 (diff) |
Merge branch 'master' into desymlink
Diffstat (limited to 'doc')
-rw-r--r-- | doc/design/assistant/desymlink.mdwn | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/doc/design/assistant/desymlink.mdwn b/doc/design/assistant/desymlink.mdwn index d113847e6..7e62d5fc9 100644 --- a/doc/design/assistant/desymlink.mdwn +++ b/doc/design/assistant/desymlink.mdwn @@ -86,3 +86,17 @@ is converted to a real file when it becomes present. * Deal with files changing as they're being transferred from a direct mode repository to another git repository. The remote repo currently will accept the bad data and update the location log to say it has the key. +* `git annex sync` updates the key to files mappings for files changed, + but needs much other work to handle direct mode: + * Generate git commit, without running `git commit`, because it will + want to stage the full files. + * Update location logs for any files deleted by a commit. + * Generate a git merge, without running `git merge` (or possibly running + it in a scratch repo?), because it will stumble over the direct files. + * Drop contents of files deleted by a merge (including updating the + location log), or if we cannot drop, + move their contents to `.git/annex/objects/`. + * When a merge adds a symlink pointing at a key that is present in the + repo, replace the symlink with the direct file (either moving out + of `.git/annex/objects/` or hard-linking if the same key is present + elsewhere in the tree. |