git-annex/doc/design
Joey Hess 99cb3e75f1
add LISTCONFIGS to external special remote protocol
Special remote programs that use GETCONFIG/SETCONFIG are recommended
to implement it.

The description is not yet used, but will be useful later when adding a way
to make initremote list all accepted configs.

configParser now takes a RemoteConfig parameter. Normally, that's not
needed, because configParser returns a parter, it does not parse it
itself. But, it's needed to look at externaltype and work out what
external remote program to run for LISTCONFIGS.

Note that, while externalUUID is changed to a Maybe UUID, checkExportSupported
used to use NoUUID. The code that now checks for Nothing used to behave
in some undefined way if the external program made requests that
triggered it.

Also, note that in externalSetup, once it generates external,
it parses the RemoteConfig strictly. That generates a
ParsedRemoteConfig, which is thrown away. The reason it's ok to throw
that away, is that, if the strict parse succeeded, the result must be
the same as the earlier, lenient parse.

initremote of an external special remote now runs the program three
times. First for LISTCONFIGS, then EXPORTSUPPORTED, and again
LISTCONFIGS+INITREMOTE. It would not be hard to eliminate at least
one of those, and it should be possible to only run the program once.
2020-01-17 16:07:17 -04:00
..
adjusted_branches
assistant
encryption
exporting_trees_to_special_remotes
external_special_remote_protocol
git-remote-daemon
iabackup
metadata
new_repo_versions
p2p_protocol
requests_routing
adjusted_branches.mdwn
assistant.mdwn
balanced_preferred_content.mdwn
caching_database.mdwn
encryption.mdwn
exporting_trees_to_special_remotes.mdwn
external_special_remote_protocol.mdwn
gcrypt.mdwn
git-remote-daemon.mdwn
iabackup.mdwn
importing_trees_from_special_remotes.mdwn
metadata.mdwn
new_repo_versions.mdwn
p2p_protocol.mdwn
preferred_content.mdwn
requests_routing.mdwn
roadmap.mdwn