Commit graph

73 commits

Author SHA1 Message Date
Joey Hess
a7f3724e21 implement GETCONFIG and SETCONFIG
Changed protocol spec to make SETCONFIG only store it persistently when run
during INITREMOTE. I see no reason to support storing it persistently at
other times, and doing so would unnecessarily complicate the code.

Also, letting that be done would probably result in use for storing data that
doesn't really belong there, and special remote authors who don't
understand how the union merging works would probably be surprised the
results.
2013-12-27 12:37:23 -04:00
Joey Hess
0c972961bb update 2013-12-27 12:04:51 -04:00
Joey Hess
526a7bb2b4 improve comments 2013-12-27 02:56:52 -04:00
Joey Hess
3289155e28 don't send PREPARE before INITREMOTE
That complicated special remote programs, because they had to avoid making
PREPARE fail if some configuration is missing, because the remote might not
be initialized yet. Instead, complicate git-annex slightly by only sending
PREPARE immediately before some other request other than INITREMOTE (or
PREPARE of course).
2013-12-27 02:49:10 -04:00
Joey Hess
6d504b57e7 make some requests optional, simplify and future-proof protocol more 2013-12-27 02:11:06 -04:00
Joey Hess
0de9135bc0 external special remote documentation and example script 2013-12-26 18:15:18 -04:00
Joey Hess
38694ed582 simplify PROGRESS
Only one transfer will be running at a time, per external special remote.
2013-12-26 16:18:38 -04:00
Joey Hess
8803e36814 future-proofing 2013-12-25 20:04:31 -04:00
Joey Hess
1dc930063a basic data types and serialization for external special remote protocol
This is mostly straightforward, but did turn out quite nicely stronly
typed, and with a quite nice automatic tokenization and parsing of received
messages.

Made a few minor changes to the protocol to clear up ambiguities and make
it easier to parse. Note particularly that setting remote configuration
is moved to a separate command, which allows a remote to set arbitrary data.
2013-12-25 17:54:57 -04:00
Joey Hess
81d051cad5 simplify 2013-12-16 11:36:19 -04:00
Joey Hess
145de01ebe use messages for query responses to allow communicating error 2013-12-16 10:30:28 -04:00
Joey Hess
87662ec14c rename HAS to CHECKPRESENT for consistency with hook special remote 2013-12-13 15:32:06 -04:00
Joey Hess
cb6a703660 refine protocol
More complicated, but less asynchronous, which will make it easier for
special remote programs to use it, at the expense of some added complexity
in git-annex.
2013-12-11 17:26:27 -04:00
Joey Hess
8223066716 update 2013-12-11 14:06:14 -04:00
Joey Hess
05e84b15cc clarify 2013-12-11 14:05:00 -04:00
Joey Hess
f4d847297c update 2013-12-11 14:04:03 -04:00
Joey Hess
d180b8e5af reorder 2013-12-11 14:02:49 -04:00
Joey Hess
37df2e3ebf layout 2013-12-11 14:02:10 -04:00
Joey Hess
22c6fe501d add ERROR 2013-12-11 14:01:33 -04:00
Joey Hess
75fda11f74 update 2013-12-11 13:56:59 -04:00
Joey Hess
e800e04d2d fixfix 2013-12-11 13:53:21 -04:00
Joey Hess
8b6d3ab2b5 fix display of | 2013-12-11 13:52:51 -04:00
Joey Hess
bf0bc0b001 add design document 2013-12-11 13:31:11 -04:00