Commit graph

15088 commits

Author SHA1 Message Date
Joey Hess
aacb0b2823 convert WebDAV to new special remote interface, adding new-style chunking support
Reusing http connection when operating on chunks is not done yet,
I had to submit some patches to DAV to support that. However, this is no
slower than old-style chunking was.

Note that it's a fileRetriever and a fileStorer, despite DAV using
bytestrings that would allow streaming. As a result, upload/download of
encrypted files is made a bit more expensive, since it spools them to temp
files. This was needed to get the progress meters to work.

There are probably ways to avoid that.. But it turns out that the current
DAV interface buffers the whole file content in memory, and I have
sent in a patch to DAV to improve its interfaces. Using the new interfaces,
it's certainly going to need to be a fileStorer, in order to read the file
size from the file (getting the size of a bytestring would destroy
laziness). It should be possible to use the new interface to make it be a
byteRetriever, so I'll change that when I get to it.

This commit was sponsored by Andreas Olsson.
2014-08-06 16:57:06 -04:00
Joey Hess
b4cf22a388 pushed checkPresent exception handling out of Remote implementations
I tend to prefer moving toward explicit exception handling, not away from
it, but in this case, I think there are good reasons to let checkPresent
throw exceptions:

1. They can all be caught in one place (Remote.hasKey), and we know
   every possible exception is caught there now, which we didn't before.
2. It simplified the code of the Remotes. I think it makes sense for
   Remotes to be able to be implemented without needing to worry about
   catching exceptions inside them. (Mostly.)
3. Types.StoreRetrieve.Preparer can only work on things that return a
   Bool, which all the other relevant remote methods already did.
   I do not see a good way to generalize that type; my previous attempts
   failed miserably.
2014-08-06 13:45:19 -04:00
Joey Hess
8587cd40ed Merge branch 'master' into newchunks 2014-08-03 19:48:50 -04:00
Joey Hess
93f20541f5 testremote --fast 2014-08-03 18:08:34 -04:00
Joey Hess
b35f7983ff convert gcrypt to new regime, including chunking
Some reorg of Remote.Rsync code to export the things gcrypt needs.
2014-08-03 17:31:10 -04:00
Joey Hess
e1e5853c94 rsync: support chunking
Chunking does not speed up rsync at all, so it's only useful for
interop with the directory special remote.
2014-08-03 15:07:43 -04:00
Joey Hess
c653e80829 Merge branch 'master' into newchunks 2014-08-03 15:04:10 -04:00
Joey Hess
c648548e1f formatting 2014-08-03 14:56:40 -04:00
http://joeyh.name/
63c00daa08 Added a comment 2014-08-03 18:40:26 +00:00
http://joeyh.name/
ac166a898e Added a comment 2014-08-03 18:27:32 +00:00
http://joeyh.name/
699a0a3bf8 Added a comment 2014-08-03 18:22:58 +00:00
zardoz
ef0404f5d4 2014-08-03 15:25:47 +00:00
https://www.google.com/accounts/o8/id?id=AItOawmkuFJVGp6WVvJtIV5JYb8IqN8mRvSGQdI
116f70555e Added a comment: Would you accept a patch? 2014-08-03 01:18:54 +00:00
Joey Hess
f0adec1288 Merge branch 'master' of ssh://git-annex.branchable.com 2014-08-02 19:18:54 -04:00
Joey Hess
42655caacc correction 2014-08-02 19:16:35 -04:00
http://joeyh.name/
51f774f8c8 Added a comment 2014-08-02 23:13:41 +00:00
Joey Hess
b5eb02bf77 Merge branch 'master' of ssh://git-annex.branchable.com 2014-08-02 19:10:55 -04:00
http://joeyh.name/
2ca8ddca0f Added a comment 2014-08-02 23:08:44 +00:00
Joey Hess
3f8605870e devblog 2014-08-02 19:05:16 -04:00
divB
8fbdcd7d9f 2014-08-02 22:57:48 +00:00
Joey Hess
b261df735d convert bup to new ChunkedEncryptable API (but do not support chunking)
bup already splits files and does rolling deltas, so there is no reason to
use chunking here.

The new API made it easier to add progress support for storeKey, so that's
done. Unfortunately, bup-split still outputs its own progress with -q,
so a little ugly, but not too bad.

Made dropping remove the branch for an object, for two reasons:

1. The new API calls removeKey to roll back a storeKey when the content
   changed unexpectedly.
2. So that testremote will be happy.

Also, fixed a bug that caused a crash when removing the branch for an
object in rollback.
2014-08-02 18:48:49 -04:00
Joey Hess
0c7c39840d Merge branch 'master' into newchunks 2014-08-02 17:25:50 -04:00
Joey Hess
7f5cd868d7 hook: use ChunkedEncryptable 2014-08-02 17:25:16 -04:00
Joey Hess
d4dc1bce75 document that encryption + bup = inneficient 2014-08-02 17:04:40 -04:00
divB
668e67719a 2014-08-02 20:29:06 +00:00
divB
9973dc85e6 2014-08-02 20:24:15 +00:00
divB
a8b0311d8a 2014-08-02 20:23:10 +00:00
divB
84b5d1241c 2014-08-02 20:17:05 +00:00
divB
7d015c8eef 2014-08-02 20:12:42 +00:00
divB
49db204da4 2014-08-02 20:10:12 +00:00
Joey Hess
32e4368377 S3: support chunking
The assistant defaults to 1MiB chunk size for new S3 special remotes.
Which will work around a couple of bugs:
  http://git-annex.branchable.com/bugs/S3_memory_leaks/
  http://git-annex.branchable.com/bugs/S3_upload_not_using_multipart/
2014-08-02 15:51:58 -04:00
zardoz
5e2dd2ea86 Added a comment 2014-08-02 14:29:26 +00:00
zardoz
670f4d43e3 2014-08-02 12:21:38 +00:00
https://id.koumbit.net/anarcat
25ac3a4c4a some progress. maybe. 2014-08-02 02:46:07 +00:00
Joey Hess
0f7b8de91b update roadmap 2014-08-01 18:22:13 -04:00
Joey Hess
dabf0bc501 typography 2014-08-01 18:18:52 -04:00
http://joeyh.name/
195c403ae3 removed 2014-08-01 22:16:29 +00:00
Joey Hess
b978adb503 document testremote 2014-08-01 18:10:02 -04:00
Joey Hess
5aa2286e7b Merge branch 'newchunks'
I am happy enough with this to make it live!
2014-08-01 18:00:47 -04:00
Joey Hess
370c01811f Merge branch 'master' of ssh://git-annex.branchable.com 2014-08-01 17:56:57 -04:00
Joey Hess
85ec4130bc devblog 2014-08-01 17:56:31 -04:00
Joey Hess
1ee24a0366 testremote now tests with and without encryption 2014-08-01 17:52:40 -04:00
Joey Hess
50a1cac24f fix example external remote script to write files atomically 2014-08-01 17:52:09 -04:00
Joey Hess
20d7295386 improve testremote command, adding chunk size testing
And also a --size parameter to configure the basic object size.
2014-08-01 16:50:24 -04:00
Joey Hess
9720ee9e56 testremote: New command to test uploads/downloads to a remote.
This only performs some basic tests so far; no testing of chunking or
resuming. Also, the existing encryption type of the remote is used; it
would be good later to derive an encrypted and a non-encrypted version of
the remote and test them both.

This commit was sponsored by Joseph Liu.
2014-08-01 15:10:01 -04:00
gernot
0b078b2d37 2014-08-01 17:57:44 +00:00
Joey Hess
c03e1c5648 add new section for testing commands 2014-08-01 12:49:26 -04:00
https://www.google.com/accounts/o8/id?id=AItOawmAINLSovhWM_4_KrbngOcxduIbBuKv8ZA
0d5fe783e4 Added a comment 2014-08-01 09:28:21 +00:00
Xyem
4e9e700548 Added a comment 2014-08-01 09:05:45 +00:00
https://www.google.com/accounts/o8/id?id=AItOawmAINLSovhWM_4_KrbngOcxduIbBuKv8ZA
532231a748 2014-08-01 08:56:23 +00:00