aboutsummaryrefslogtreecommitdiff
path: root/Assistant/XMPP/Git.hs
Commit message (Collapse)AuthorAge
* rename moduleGravatar Joey Hess2013-04-23
|
* expose Control.Monad.joinGravatar Joey Hess2013-04-22
| | | | | I think I've been looking for that function for some time. Ie, I remember wanting to collapse Just Nothing to Nothing.
* assistant: Added sequence numbers to XMPP git push packets. (Not yet used.)Gravatar Joey Hess2013-04-10
| | | | | | | For backwards compatability, "" is treated as "0" sequence number. --debug will show xmpp sequence numbers now, but they are not otherwise used.
* syncNewRemote is not only used for new remotes; rename to syncRemoteGravatar Joey Hess2013-04-08
|
* fix build with xmpp and w/o webappGravatar Joey Hess2013-03-24
|
* add globallyAvailable to remotesGravatar Joey Hess2013-03-15
|
* webapp: Display an alert when there are XMPP remotes, and a cloud transfer ↵Gravatar Joey Hess2013-03-15
| | | | repository needs to be configured.
* add alerts while performing xmpp git push/pullGravatar Joey Hess2013-03-07
|
* assistant: Fix syncing after XMPP pairing.Gravatar Joey Hess2013-03-06
| | | | | A missing uuid broke this, and also caused a UI glitch in the webapp's remote list.
* tag xmpp pushes with jidGravatar Joey Hess2013-03-06
| | | | | | | | | | This fixes the issue mentioned in the last commit. Turns out just collecting UUID of clients behind a XMPP remote is insufficient (although I should probably still do it for other reasons), because a single remote repo might be connected via both XMPP and local pairing. So a way is needed to know when a push was received from any client using a given XMPP remote over XMPP, as opposed to via ssh.
* assistant: Get back in sync with XMPP remotes after network reconnection, ↵Gravatar Joey Hess2013-03-06
| | | | | | | | | | | | | | | | | | | | | and on startup. Make manualPull send push requests over XMPP. When reconnecting with remotes, those that are XMPP remotes cannot immediately be pulled from and scanned, so instead maintain a set of (probably) desynced remotes, and put XMPP remotes on it. (This set could be used in other ways later, if we can detect we're out of sync with other types of remotes.) The merger handles detecting when a XMPP push is received from a desynced remote, and triggers a scan then, if they have in fact diverged. This has one known bug: A single XMPP remote can have multiple clients behind it. When this happens, only the UUID of one client is recorded as the UUID of the XMPP remote. Pushes from the other XMPP clients will not trigger a scan. If the client whose UUID is expected responds to the push request, it'll work, but when that client is offline, we're SOL.
* deal with Android's nonstandard shell locationGravatar Joey Hess2013-02-13
| | | | | | This is so gratutious and pointless. It's a shame that everything we learned about Unix portability and the importance of standards has been thrown out the window by these guys.
* use System.TimeoutGravatar Joey Hess2012-11-14
| | | | I'd forgotten this existed!
* don't try to transfer data to/from XMPP remotesGravatar Joey Hess2012-11-11
| | | | | Partition syncRemotes into ones needing git sync (ie, non-special remotes), and ones needing data sync (ie, non-XMPP remotes).
* allow both one push and one receive-pack to run at the same timeGravatar Joey Hess2012-11-11
| | | | | | Noticed that when pairing, sometimes both sides start to push, and the other side sends a PushRequest, and the two deadlock, neither doing anything. (Timeout eventually breaks this.) So, let both run at the same time.
* add 120 second timeout when waiting for XMPP packetsGravatar Joey Hess2012-11-11
|
* full-on git-annex assistant syncing now works over XMPP!Gravatar Joey Hess2012-11-10
| | | | | | | | | | I decided to use the fallback push mode from the beginning for XMPP, since while it uses some ugly branches, it avoids the possibility of a normal push failing, and needing to pull and re-push. Due to the overhead of XMPP, and the difficulty of building such a chain of actions due to the async implementation, this seemed reasonable. It seems to work great!
* separate data type for push stagesGravatar Joey Hess2012-11-10
| | | | This improves type safety.
* refactorGravatar Joey Hess2012-11-10
|
* refactorGravatar Joey Hess2012-11-10
|
* refactorGravatar Joey Hess2012-11-10
|
* fix exit code propigationGravatar Joey Hess2012-11-10
|
* refactorGravatar Joey Hess2012-11-09
|
* ensure handles get closedGravatar Joey Hess2012-11-09
|
* increase chunk sizeGravatar Joey Hess2012-11-09
| | | | | | XMPP has no defined message size limits, but some servers will have ad-hoc limits. However, 4k seems safe, even after the additional bloat of base64. That should not exceed 8k.
* refactorGravatar Joey Hess2012-11-09
|
* refactorGravatar Joey Hess2012-11-09
|
* xmpp git push is working!Gravatar Joey Hess2012-11-09
| | | | | | Various final bug fixes, and tweaks that got it working. Currently pushes a hardcoded ref, which needs to be fixed, etc.
* run xmpp push actions in separate thread from xmpp clientGravatar Joey Hess2012-11-09
| | | | | Took me a while to figure out why the xmpp client was not receiving git xmpp push messages after a push started.
* fix git push startupGravatar Joey Hess2012-11-09
|
* add canpush xmpp commandGravatar Joey Hess2012-11-09
|
* use xmpp::user@host for xmpp remotesGravatar Joey Hess2012-11-09
| | | | | | Inject the required git-remote-xmpp into PATH when running xmpp git push. Rest of the time it will not be in PATH, and git won't be able to talk to xmpp remotes.
* xmpp push control flowGravatar Joey Hess2012-11-08
| | | | | | | | | It might even work, although nothing yet triggers XMPP pushes. Also added a set of deferred push messages. Only one push can run at a time, and unrelated push messages get deferred. The set will never grow very large, because it only puts two types of messages in there, that can only vary in the client doing the push.
* hooked up XMPP git push send/receive (but not yet control flow)Gravatar Joey Hess2012-11-08
|
* built IO side of xmppReceivePackGravatar Joey Hess2012-11-06
|
* cleanupGravatar Joey Hess2012-11-06
|
* noteGravatar Joey Hess2012-11-06
|
* implemented IO side of xmppPush; xmpp side still todoGravatar Joey Hess2012-11-06
|
* xmppgit now actually worksGravatar Joey Hess2012-11-06
| | | | | But I could not find a way to implement it using just FD piping; it has to copy the data.
* add xmppgit command; roughed out xmpp push protocol and designGravatar Joey Hess2012-11-06
|
* finished XMPP pairing!Gravatar Joey Hess2012-11-05
This includes keeping track of which buddies we're pairing with, to know which PairAck are legitimate.