git-annex/doc/todo/sync_fast_import.mdwn
2020-09-28 10:40:13 -04:00

41 lines
2.1 KiB
Markdown

git-annex import --no-content from a directory special remote is
implemented, but git-annex sync, when run without --content, does not
operate on import/export special remotes. This is inconsistent, and it
would be useful if it did.
<https://git-annex.branchable.com/todo/importing_from_special_remote_without_downloading/#comment-e3db95e073f01a05b205e26f422f5bc5>
describes a problem with doing that, involving merge conflicts. That
should not actually happen with the directory special remote, because
it generates the same key with importKey as git-annex import would.
But other special remotes later using this interface might generate a key
using a different hash than usual.
The suggestion there is that there could be a separate config that controls
whether sync does a fast import or an import with content. Then when sync
is run without --content, it can do a fast import. And when run with
--content, it can do a fast import, followed by getting the content.
Or maybe that should just be what it always does, when a remote supports
importKey? (If so, git-annex import should do the same.) Yeah, this seems
better than a config. Look at it like this: The special remote makes pseudo
"commits" when changes are made to it. And maybe it choses to use a
different kind of key than the local repository would use. Same could
happen when pulling from someone else's repo, if they've configured
git-annex to use a different backend.
> There could be future transition problems here. If a remote does not
> support importkey, and imports are done from it, and then in a new
> version, it does support importkey, there would be the same risk of
> conflicts.
>
> Could be solved by the remote's code indicating if
> importKey is safe to use by default. If a remote started off implementing
> only imports w/o importKey, and then added importKey, and importKey
> generates different keys than the keys generated by hashing downloaded
> content, then the remote could say, don't use importKey by default.
> (Or more likely, only the directory remote will be able to support
> importKey by default..)
---
See also, [[todo/import_--no-content_largefiles_conflict]]