diff options
author | Joey Hess <joey@kitenet.net> | 2012-12-10 14:47:11 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-12-10 14:47:11 -0400 |
commit | 469c76acddcd972da018542e7791a74c5a40c935 (patch) | |
tree | 57dce34e40c2d6bfdb90350abf6db773d883be66 | |
parent | 35b05c4cfc9a3c86a7f3b0550d93f52f3ec6e28b (diff) |
update list of things TODO to make git annex sync work in direct mode
-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 ced1e1587..598f15535 100644 --- a/doc/design/assistant/desymlink.mdwn +++ b/doc/design/assistant/desymlink.mdwn @@ -79,3 +79,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. |