summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* this is degenerate, but should workGravatar https://id.koumbit.net/anarcat2014-08-10
|
* trying to work around a dep problem on windowsGravatar Joey Hess2014-08-10
|
* stop nuking cabalGravatar Joey Hess2014-08-10
|
* nuke cabal on windows, so it will build new DAVGravatar Joey Hess2014-08-10
|
* fix windows buildGravatar Joey Hess2014-08-10
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2014-08-10
|\
* | devblogGravatar Joey Hess2014-08-10
| |
* | unlock of not present file should still be a failure, just not a crashGravatar Joey Hess2014-08-10
| |
* | testremote: Add testing of behavior when remote is not availableGravatar Joey Hess2014-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a mkUnavailable method, which a Remote can use to generate a version of itself that is not available. Implemented for several, but not yet all remotes. This allows testing that checkPresent properly throws an exceptions when it cannot check if a key is present or not. It also allows testing that the other methods don't throw exceptions in these circumstances. This immediately found several bugs, which this commit also fixes! * git remotes using ssh accidentially had checkPresent return an exception, rather than throwing it * The chunking code accidentially returned False rather than propigating an exception when there were no chunks and checkPresent threw an exception for the non-chunked key. This commit was sponsored by Carlo Matteo Capocasa.
| * Explain the problem betterGravatar http://svario.it/gioele2014-08-10
|/
* unlock: Better error handling; continue past files that are not available or ↵Gravatar Joey Hess2014-08-09
| | | | cannot be unlocked due to disk space, and try all specified files.
* avoid printing really ugly webdav exceptionsGravatar Joey Hess2014-08-09
| | | | | The responseheaders can sometimes include the entire input request, which is several pages of garbage.
* devblogGravatar Joey Hess2014-08-08
|
* Merge branch 'newchunks'Gravatar Joey Hess2014-08-08
|\
| * fix checkPresent error handling for non-present local git reposGravatar Joey Hess2014-08-08
| | | | | | | | guardUsable r (error "foo") *returned* an error, rather than throwing it
| * check for 200 responseGravatar Joey Hess2014-08-08
| |
| * http-conduit not used for davGravatar Joey Hess2014-08-08
| |
| * fix removeKey when not presentGravatar Joey Hess2014-08-08
| |
| * show missing url= parameter error soonerGravatar Joey Hess2014-08-08
| |
| * fix build warningGravatar Joey Hess2014-08-08
| |
| * increave dav build-depGravatar Joey Hess2014-08-08
| |
| * WebDAV: Avoid buffering whole file in memory when downloading.Gravatar Joey Hess2014-08-08
| | | | | | | | | | | | httpBodyRetriever will later also be used by S3 This commit was sponsored by Ethan Aubin.
| * further break out legacy chunking codeGravatar Joey Hess2014-08-08
| |
| * DAV version turns out to be 1.0.Gravatar Joey Hess2014-08-08
| |
* | Added a comment: a more recent forkGravatar https://www.google.com/accounts/o8/id?id=AItOawmvzzyDA8uXFz8yokeCrepbh8PwWe_WrjE2014-08-08
| |
* | Added a comment: current status?Gravatar https://www.google.com/accounts/o8/id?id=AItOawmvzzyDA8uXFz8yokeCrepbh8PwWe_WrjE2014-08-08
| |
| * need transformers for Utility.ExceptionGravatar Joey Hess2014-08-07
| |
| * unify exception handling into Utility.ExceptionGravatar Joey Hess2014-08-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed old extensible-exceptions, only needed for very old ghc. Made webdav use Utility.Exception, to work after some changes in DAV's exception handling. Removed Annex.Exception. Mostly this was trivial, but note that tryAnnex is replaced with tryNonAsync and catchAnnex replaced with catchNonAsync. In theory that could be a behavior change, since the former caught all exceptions, and the latter don't catch async exceptions. However, in practice, nothing in the Annex monad uses async exceptions. Grepping for throwTo and killThread only find stuff in the assistant, which does not seem related. Command.Add.undo is changed to accept a SomeException, and things that use it for rollback now catch non-async exceptions, rather than only IOExceptions.
| * generalized using the extensions packageGravatar Joey Hess2014-08-07
| |
* | devbogGravatar Joey Hess2014-08-07
| |
| * WebDAV: Avoid buffering whole file in memory when uploading.Gravatar Joey Hess2014-08-07
| | | | | | | | | | | | The httpStorer will later also be used by S3. This commit was sponsored by Torbjørn Thorsen.
| * webdav: reuse http connection when operating on the chunks of a fileGravatar Joey Hess2014-08-07
| | | | | | | | | | | | | | | | For both new and legacy chunks. Massive speed up! This commit was sponsored by Dominik Wagenknecht.
| * use DAV monadGravatar Joey Hess2014-08-07
| | | | | | | | | | | | | | | | | | | | | | | | This speeds up the webdav special remote somewhat, since it often now groups actions together in a single http connection when eg, storing a file. Legacy chunks are still supported, but have not been sped up. This depends on a as-yet unreleased version of DAV. This commit was sponsored by Thomas Hochstein.
* | Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2014-08-06
|\ \
* | | devblogGravatar Joey Hess2014-08-06
| | |
| | * convert WebDAV to new special remote interface, adding new-style chunking ↵Gravatar Joey Hess2014-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * run Preparer to get Remover and CheckPresent actionsGravatar Joey Hess2014-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow special remotes to eg, open a http connection and reuse it, while checking if chunks are present, or removing chunks. S3 and WebDAV both need this to support chunks with reasonable speed. Note that a special remote might want to cache a http connection across multiple requests. A simple case of this is that CheckPresent is typically called before Store or Remove. A remote using this interface can certianly use a Preparer that eg, uses a MVar to cache a http connection. However, it's up to the remote to then deal with things like stale or stalled http connections when eg, doing a series of downloads from a remote and other places. There could be long delays between calls to a remote, which could lead to eg, http connection stalls; the machine might even move to a new network, etc. It might be nice to improve this interface later to allow the simple case without needing to handle the full complex case. One way to do it would be to have a `Transaction SpecialRemote cache`, where SpecialRemote contains methods for Storer, Retriever, Remover, and CheckPresent, that all expect to be passed a `cache`.
| | * pushed checkPresent exception handling out of Remote implementationsGravatar Joey Hess2014-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * update for change in bup remote removalGravatar Joey Hess2014-08-06
| | |
| * | (no commit message)Gravatar gernot2014-08-06
| | |
| * | Revert to normal forum pageGravatar http://svario.it/gioele2014-08-06
| | |
| * | (no commit message)Gravatar https://renaud.casenave.fr/2014-08-06
| | |
| * | Added a comment: Can annex use existing backends when amending existing files?Gravatar https://www.google.com/accounts/o8/id?id=AItOawmraN_ldJplGunVGmnjjLN6jL9s9TrVMGE2014-08-05
| | |
| * | (no commit message)Gravatar gernot2014-08-05
| | |
| * | How to remove a directory with git-annex added?Gravatar https://www.google.com/accounts/o8/id?id=AItOawkBTVYS5lTecuenAB01eHgfUxE20vWVpU42014-08-05
| | |
| * | How to remove a directory with git-annex added?Gravatar https://www.google.com/accounts/o8/id?id=AItOawkBTVYS5lTecuenAB01eHgfUxE20vWVpU42014-08-05
| | |
| * | (no commit message)Gravatar jg123h12jh3y12g3y2014-08-05
| | |
| * | Added a commentGravatar annexuser1232014-08-04
| | |
| | * make local gcrypt storeKey be atomicGravatar Joey Hess2014-08-04
| | | | | | | | | | | | Reuse Remote.Directory's code.
| | * fix "storeKey when already present" test for git-annex-shell transfersGravatar Joey Hess2014-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now git-annex-shell recvkey, when the key is already present, allows another copy to be rsynced up, and just throws it away. This same behavior could have already happened before, when eg, two repos tried to upload the same object at the same time. So this makes the test suite pass, and should not add any bad behavior, other than slightly more work being done in a rather edge case. This relies on moveAnnex's behavior of keeping the current version of an object.