Commit graph

16699 commits

Author SHA1 Message Date
Joey Hess
6de3bc2ab6 make directory absolute (mostly as an example of using SETCONFIG) 2013-12-27 14:30:00 -04:00
Joey Hess
dc7681b2bb emphasize link to protocol 2013-12-27 14:15:35 -04:00
Joey Hess
9b944e71e1 fix link 2013-12-27 14:15:01 -04:00
Joey Hess
5972ee50fa external special remotes working 2013-12-27 14:13:52 -04:00
Joey Hess
eb79670541 Merge branch 'master' of ssh://git-annex.branchable.com 2013-12-27 14:07:48 -04:00
Joey Hess
4d94e40ddd de-verbose cp 2013-12-27 14:06:56 -04:00
Joey Hess
e9cb88ca38 another bug in shell code. haskell has ruined me 2013-12-27 14:06:33 -04:00
Joey Hess
53b0228077 fix 3 more bugs in these measly 150 lines of shell code. sheesh 2013-12-27 14:04:51 -04:00
Joey Hess
551573570f better protocol error message, indicate if the command was able to be parsed or was misplaced 2013-12-27 14:03:35 -04:00
http://joeyh.name/
9ddfc6cfae Added a comment 2013-12-27 18:03:14 +00:00
Greg Grossmeier
adfb556130 more debugging info 2013-12-27 10:00:52 -08:00
arand
698a55e1b2 2013-12-27 17:48:20 +00:00
Joey Hess
82c2439162 Merge branch 'master' of ssh://git-annex.branchable.com 2013-12-27 13:22:59 -04:00
Joey Hess
21342cae63 flush handle after writing message 2013-12-27 13:22:06 -04:00
Joey Hess
fa6f404a5f fix deadlock when state TMVar is empty 2013-12-27 13:17:22 -04:00
https://me.yahoo.com/a/FHnTlSBo1eCGJRwueeKeB6.RCaPbGMPr5jxx8A--#ce0d8
b74f05f12d 2013-12-27 17:16:33 +00:00
Joey Hess
3cd8f1bb13 todo: url lists 2013-12-27 13:09:35 -04:00
Joey Hess
9125a25738 defer SETSTATE and GETSTATE for now
TAHOE-LAFS may use these eventually, but that's TBD and none of git-annex's
own special remotes need that, except for the web special remote's urls.
2013-12-27 13:07:56 -04:00
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
d8741e571d Merge branch 'master' of ssh://git-annex.branchable.com 2013-12-27 12:24:19 -04:00
Joey Hess
91c9e98168 support encryption 2013-12-27 12:21:55 -04:00
Joey Hess
0c972961bb update 2013-12-27 12:04:51 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnX1msQxnLoSeu7q-i-c9BWghonsN7Qmns
974eb1bb18 2013-12-27 14:32:58 +00:00
Attila
6c7456a90a Added a comment: git-annex.org 2013-12-27 14:14:10 +00:00
https://www.google.com/accounts/o8/id?id=AItOawleVyKk2kQsB_HgEdS7w1s0BmgRGy1aay0
c437dc9e7d Added a comment 2013-12-27 08:44:53 +00:00
https://openid.stackexchange.com/user/e65e6d0e-58ba-41de-84cc-1f2ba54cf574
f8f7c0f2cb Added a comment: Now I'm getting... 2013-12-27 08:01:45 +00:00
Joey Hess
5d8ff64dc1 make --debug show transcript of special remote protocol messages 2013-12-27 03:10:00 -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
5b7c38c90a improve code, seems to work well now 2013-12-27 02:49:00 -04:00
Joey Hess
5d00fa523c fix bug (no type safe protocol stuff here, alas..) 2013-12-27 02:12:33 -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
372764ec76 Merge branch 'master' of ssh://git-annex.branchable.com 2013-12-27 00:34:23 -04:00
Joey Hess
01bd650e2d refreshed android patches 2013-12-27 00:32:29 -04:00
http://id.clacke.se/
ea09aa5f23 Added a comment: dup 2013-12-27 04:18:19 +00:00
Joey Hess
6c3e11abaf avoid another encoding crash 2013-12-27 00:10:04 -04:00
Joey Hess
63fab93755 -Wall clean 2013-12-27 00:05:15 -04:00
https://www.google.com/accounts/o8/id?id=AItOawm5WyknJirJJridJjiPNgrlYxGG9xrZBvA
81e828558b 2013-12-27 03:54:47 +00:00
https://openid.stackexchange.com/user/e65e6d0e-58ba-41de-84cc-1f2ba54cf574
dfa850c345 Added a comment: Thanks! 2013-12-27 01:37:36 +00:00
https://www.google.com/accounts/o8/id?id=AItOawknOATcOkmzX4jKuET5Z2RsaFUNnLKnQsU
354be3ddb5 2013-12-27 01:14:29 +00:00
Greg Grossmeier
6f0feb94b4 Added some more details to log 2013-12-26 16:45:25 -08:00
Greg Grossmeier
085c9783f5 bug report, real but also testing via git checkout not web interface 2013-12-26 16:37:54 -08:00
http://joeyh.name/
a39ff94188 Added a comment 2013-12-26 23:06:34 +00:00
Joey Hess
581b53a4f4 update 2013-12-26 18:46:23 -04:00
Joey Hess
aa3ddb53f7 devblog 2013-12-26 18:42:26 -04:00
Joey Hess
cfcc1c13a0 fix format of sample program 2013-12-26 18:36:57 -04:00
Joey Hess
56ef896a25 Merge branch 'master' of ssh://git-annex.branchable.com 2013-12-26 18:32:26 -04:00
Joey Hess
6c565ec905 external special remotes mostly implemented (untested)
This has not been tested at all. It compiles!

The only known missing things are support for encryption, and for get/set
of special remote configuration, and of key state. (The latter needs
separate work to add a new per-key log file to store that state.)

Only thing I don't much like is that initremote needs to be passed both
type=external and externaltype=foo. It would be better to have just
type=foo

Most of this is quite straightforward code, that largely wrote itself given
the types. The only tricky parts were:

* Need to lock the remote when using it to eg make a request, because
  in theory git-annex could have multiple threads that each try to use
  a remote at the same time. I don't think that git-annex ever does
  that currently, but better safe than sorry.

* Rather than starting up every external special remote program when
  git-annex starts, they are started only on demand, when first used.
  This will avoid slowdown, especially when running fast git-annex query
  commands. Once started, they keep running until git-annex stops, currently,
  which may not be ideal, but it's hard to know a better time to stop them.

* Bit of a chicken and egg problem with caching the cost of the remote,
  because setting annex-cost in the git config needs the remote to already
  be set up. Managed to finesse that.

This commit was sponsored by Lukas Anzinger.
2013-12-26 18:23:13 -04:00
Joey Hess
409a85b264 update 2013-12-26 18:20:32 -04:00
Joey Hess
a1d283657b update for external special remotes 2013-12-26 18:18:13 -04:00