git-annex/doc/design
Joey Hess dafafad115
external: nice error message for keys with spaces in their name
External special remotes will refuse to operate on keys with spaces in
their names. That has never worked correctly due to the design of the
external special remote protocol. Display an error message suggesting
migration.

Not super happy with this, but it's a pragmatic solution. Better than
complicating the external special remote interface and all external special
remotes.

Note that I only made it use SafeKey in Request, not Response. git-annex
does not construct a Response, so that would not add any safety. And
presumably, if git-annex avoids feeding any such keys to an external
special remote, it will never have a reason to make a Response using such a
key. If it did, it would result in a protocol error anyway.

There's still a Serializeable instance for Key; it's used by P2P.Protocol.
There, the Key is always in the final position, so it's ok if it contains
spaces.

Note that the protocol documentation has been fixed to say that the File
may contain spaces. One way that can happen, even though the Key can't,
is when using direct mode, and the work tree filename contains spaces.
When sending such a file to the external special remote the worktree
filename is used.

This commit was sponsored by Thom May on Patreon.
2017-08-17 16:18:34 -04:00
..
adjusted_branches Added a comment: adjusted branche to "focus" on a specific subtree 2016-08-22 14:19:57 +00:00
assistant correct spelling mistakes 2017-02-12 17:30:23 -04:00
encryption Added a comment 2012-08-15 19:16:10 +00:00
exporting_trees_to_special_remotes responses, bug I noticed 2017-08-15 14:42:22 -04:00
external_special_remote_protocol reply 2016-05-23 15:45:56 -04:00
git-remote-daemon Added a comment: Rolling hash chunking 2014-04-04 14:16:25 +00:00
iabackup Added a comment: 14 of 21PB, actually 2015-04-30 02:58:05 +00:00
metadata followup 2015-04-09 14:33:11 -04:00
new_repo_versions devblog 2016-05-04 14:39:53 -04:00
requests_routing Added a comment: design phase only 2015-08-18 19:02:30 +00:00
adjusted_branches.mdwn link to the adjust manpage 2016-06-23 14:39:49 +00:00
assistant.mdwn clarify that this is mostly done (i think?) 2014-04-07 04:41:56 +00:00
balanced_preferred_content.mdwn Fix a typo 2016-02-08 10:54:08 -04:00
caching_database.mdwn correct spelling mistakes 2017-02-12 17:30:23 -04:00
encryption.mdwn clean up 2015-12-11 11:03:22 -04:00
exporting_trees_to_special_remotes.mdwn protocol design 2017-07-12 12:43:46 -04:00
external_special_remote_protocol.mdwn external: nice error message for keys with spaces in their name 2017-08-17 16:18:34 -04:00
gcrypt.mdwn automatically derive an annex-uuid from a gcrypt-uuids 2013-09-05 16:02:39 -04:00
git-remote-daemon.mdwn update 2015-01-15 15:58:56 -04:00
iabackup.mdwn minor typo fixes throughout 2016-06-02 11:22:18 -04:00
metadata.mdwn update for v6 unlocked files 2015-12-26 14:59:06 -04:00
new_repo_versions.mdwn comment 2016-04-20 14:24:26 -04:00
preferred_content.mdwn preferred content stability analysis 2014-01-22 15:55:44 -04:00
requests_routing.mdwn keep track of satisfied requests, and summarize 2014-05-09 16:41:05 -03:00
roadmap.mdwn updates 2016-12-13 14:35:58 -04:00