summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* implement p2p protocol for HandleGravatar Joey Hess2016-11-20
| | | | | | | | | | | This is most of the way to having the p2p protocol working over tor hidden services, at least enough to do git push/pull. The free monad was split into two, one for network operations and the other for local (Annex) operations. This will allow git-remote-tor-annex to run only an IO action, not needing the Annex monad. This commit was sponsored by Remy van Elst on Patreon.
* extend p2p protocol to support gitremote-helpers connectGravatar Joey Hess2016-11-19
| | | | | | | | A bit tricky since Proto doesn't support threads. Rather than adding threading support to it, ended up using a callback that waits for both data on a Handle, and incoming messages at the same time. This commit was sponsored by Denis Dzyubenko on Patreon.
* Merge branch 'master' into torGravatar Joey Hess2016-11-18
|\
| * add news item for git-annex 6.20161118Gravatar Joey Hess2016-11-18
| |
| * releasing package git-annex version 6.201611186.20161118Gravatar Joey Hess2016-11-18
| |
| * commentGravatar Joey Hess2016-11-18
| |
| * Added a commentGravatar yomguy2016-11-18
| |
| * (no commit message)Gravatar openmedi2016-11-18
| |
| * Added a commentGravatar openmedi2016-11-18
| |
* | Add content locking to P2P protocolGravatar Joey Hess2016-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Is content locking needed in the P2P protocol? Based on re-reading bugs/concurrent_drop--from_presence_checking_failures.mdwn, I think so: Peers can form cycles, and multiple peers can all be trying to drop the same content. So, added content locking to the protocol, with some difficulty. The implementation is fine as far as it goes, but note the warning comment for lockContentWhile -- if the connection to the peer is dropped unexpectedly, the peer will then unlock the content, and yet the local side will still think it's locked. To be honest I'm not sure if Remote.Git's lockKey for ssh remotes doesn't have the same problem. It checks that the "ssh remote git-annex-shell lockcontent" process has not exited, but if the connection closes afer that check, the lockcontent command will unlock it, and yet the local side will still think it's locked. Probably this needs to be fixed by eg, making lockcontent catch any execptions due to the connection closing, and in that case, wait a significantly long time before dropping the lock. This commit was sponsored by Anthony DeRobertis on Patreon.
* | renameGravatar Joey Hess2016-11-17
| |
* | refactorGravatar Joey Hess2016-11-17
| |
* | add CHECKPRESENTGravatar Joey Hess2016-11-17
| | | | | | | | Using SUCCESS to mean the content is present and FAILURE to mean it's not.
* | added REMOVE to protocolGravatar Joey Hess2016-11-17
| |
* | add ALREADY-HAVE response to PUTGravatar Joey Hess2016-11-17
| |
* | pass Len to writeKeyFile so it can detect short readsGravatar Joey Hess2016-11-17
| |
* | refactorGravatar Joey Hess2016-11-17
| |
* | avoid setPresent when sending to a peerGravatar Joey Hess2016-11-17
| | | | | | | | | | This mirrors how git-annex-shell works; recvKey updates location tracking, but sendKey does not.
* | implementation of peer-to-peer protocolGravatar Joey Hess2016-11-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For use with tor hidden services, and perhaps other transports later. Based on Utility.SimpleProtocol, it's a line-based protocol, interspersed with transfers of bytestrings of a specified size. Implementation of the local and remote sides of the protocol is done using a free monad. This lets monadic code be included here, without tying it to any particular way to get bytes peer-to-peer. This adds a dependency on the haskell package "free", although that was probably pulled in transitively from other dependencies already. This commit was sponsored by Jeff Goeke-Smith on Patreon.
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2016-11-17
| |\
| * | devblogGravatar Joey Hess2016-11-17
| | |
| | * Added a comment: git annex copy --auto --to cloud worksGravatar andrew2016-11-17
| | |
* | | Merge branch 'master' into torGravatar Joey Hess2016-11-17
|\| |
| * | avoid tab warnings from ghc 8Gravatar Joey Hess2016-11-17
| | |
* | | Merge branch 'master' into torGravatar Joey Hess2016-11-17
|\| |
| | * Added a comment: RESOLVEDGravatar andrew2016-11-17
| | |
| | * (no commit message)Gravatar db48x2016-11-17
| | |
| | * Added a commentGravatar luckcolorsgoo@ab4f3c1c44a7dbcbcb9d9a29315b59ad524ceaaa2016-11-16
| |/
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2016-11-16
| |\
| * | arm build uses 32kb page sizeGravatar Joey Hess2016-11-16
| | | | | | | | | | | | (Change was made in gitannexbuilder scripts not here.)
| | * Added a comment: how about reusing the special remote protocol?Gravatar https://anarc.at/openid/2016-11-16
| |/
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2016-11-16
| |\
| * | devblogGravatar Joey Hess2016-11-16
| | |
| * | improve commentGravatar Joey Hess2016-11-16
| | |
| * | fsck --all --from was checking the content of files in the local repository, ↵Gravatar Joey Hess2016-11-16
| | | | | | | | | | | | | | | | | | | | | | | | rather than on the special remote. Straight up forgot to handle this case! This commit was sponsored by Fernando Jimenez on Patreon.
| * | moreinfo neededGravatar Joey Hess2016-11-16
| | |
| * | commentGravatar Joey Hess2016-11-16
| | |
| * | commentGravatar Joey Hess2016-11-16
| | |
| * | moreinfoGravatar Joey Hess2016-11-16
| | |
| * | commentGravatar Joey Hess2016-11-16
| | |
| * | commentGravatar Joey Hess2016-11-16
| | |
| * | already fixedGravatar Joey Hess2016-11-16
| | |
| * | commentGravatar Joey Hess2016-11-16
| | |
| | * (no commit message)Gravatar andrew2016-11-16
| | |
| | * Added a comment: how to investigateGravatar andrew2016-11-16
| |/
| * fix giveup shadowingGravatar Joey Hess2016-11-16
| |
| * allow Utility.Exception to still be used when not building with cabalGravatar Joey Hess2016-11-15
| |
| * remove debug printGravatar Joey Hess2016-11-15
| |
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2016-11-15
| |\
| * | Avoid backtraces on expected failures when built with ghc 8; only use ↵Gravatar Joey Hess2016-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | backtraces for unexpected errors. ghc 8 added backtraces on uncaught errors. This is great, but git-annex was using error in many places for a error message targeted at the user, in some known problem case. A backtrace only confuses such a message, so omit it. Notably, commands like git annex drop that failed due to eg, numcopies, used to use error, so had a backtrace. This commit was sponsored by Ethan Aubin.