summaryrefslogtreecommitdiff
path: root/RemoteDaemon
Commit message (Collapse)AuthorAge
* remotedaemon: Fix problem that could prevent ssh connections being made ↵Gravatar Joey Hess2015-01-15
| | | | | | | | after two LOSTNET messages were received in a row Perhaps due to two different network interfaces being brought down. Since there is no reliable way to drain a Chan, I switched to STM TChan.
* indent with tabs not spacesGravatar Joey Hess2014-10-09
| | | | | | | | | | | Found these with: git grep "^ " $(find -type f -name \*.hs) |grep -v ': where' Unfortunately there is some inline hamlet that cannot use tabs for indentation. Also, Assistant/WebApp/Bootstrap3.hs is a copy of a module and so I'm leaving it as-is.
* fix some mixed space+tab indentationGravatar Joey Hess2014-10-09
| | | | | | | | | This fixes all instances of " \t" in the code base. Most common case seems to be after a "where" line; probably vim copied the two space layout of that line. Done as a background task while listening to episode 2 of the Type Theory podcast.
* 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.
* export CreateProcess fields from Utility.ProcessGravatar Joey Hess2014-06-10
| | | | update code to avoid cwd and env redefinition warnings
* fix RELOADGravatar Joey Hess2014-04-20
|
* send remote-daemon a RELOAD after making a ssh remoteGravatar Joey Hess2014-04-20
| | | | | This doesn't work yet, because RELOAD is buggy and does not notice the new remote.
* fix RESUMEGravatar Joey Hess2014-04-14
|
* remotedaemon: When network connection is lost, close all cached ssh connections.Gravatar Joey Hess2014-04-12
| | | | This commit was sponsored by Cedric Staub.
* sync, assistant, remotedaemon: Use ssh connection caching for git pushes and ↵Gravatar Joey Hess2014-04-12
| | | | | | | | | | | | | | | | | pulls. For sync, saves 1 ssh connection per remote. For remotedaemon, the same ssh connection that is already open to run git-annex-shell notifychanges is reused to pull from the remote. Only potential problem is that this also enables connection caching when the assistant syncs with a ssh remote. Including the sync it does when a network connection has just come up. In that case, cached ssh connections are likely to be stale, and so using them would hang. Until I'm sure such problems have been dealt with, this commit needs to stay on the remotecontrol branch, and not be merged to master. This commit was sponsored by Alexandre Dupas.
* make git-remote-daemon ssh transport robustGravatar Joey Hess2014-04-09
| | | | | | | | | | | | | | | | | | | * Remote system might be available, and connection get lost. Should reconnect, but needs to avoid bad behavior (ie, constant reconnect attempts.) Use exponential backoff. * Detect if old system had a too old git-annex-shell, and show the user a nice message in the webapp. Required parsing error messages, so perhaps this code shoudl be removed once enough time has passed.. * Switch the protocol to using remote URI's, rather than remote names. Names change. Also avoids issues with serialization of names containing whitespace. This is nearly ready for merge into master now. I'd still like to make the ssh transport smarter about reusing ssh connection caching during git pull. This commit was sponsored by Jim Paris.
* support gcrypt remotes (assuming them to be over ssh transport)Gravatar Joey Hess2014-04-08
|
* discard old transports on pauseGravatar Joey Hess2014-04-08
|
* remotedaemon: avoid extraneous stdout outputGravatar Joey Hess2014-04-08
|
* fix STOPGravatar Joey Hess2014-04-08
|
* cleaned up AnnexState handling in transportsGravatar Joey Hess2014-04-08
|
* added git-annex remotedaemonGravatar Joey Hess2014-04-06
| | | | | | | | | So far, handling connecting to git-annex-shell notifychanges, and pulling immediately when a change is pushed to a remote. A little bit buggy (crashes after the first pull), but it already works! This commit was sponsored by Mark Sheppard.
* git-annex-shell: Added notifychanges command.Gravatar Joey Hess2014-04-05
| | | | | | | | | | This will be used by the remote-daemon to quickly tell when changes have been pushed from some other repository into a ssh remote. Adjusted the remote-daemon protocol to communicate changed shas, rather than git branch refs. This way, it can easily check if a sha is new. This commit was sponsored by Carlos Trijueque Albarran.
* tiny little protocol between git-remote-daemon and git-annex-shellGravatar Joey Hess2014-04-05
| | | | Subset of the git-remote-daemon protocol.
* basic support for git-remote-daemon protocolGravatar Joey Hess2014-04-05