diff options
author | 2012-11-08 16:44:23 -0400 | |
---|---|---|
committer | 2012-11-08 16:46:29 -0400 | |
commit | f9bf6fbcb9ef2d4afc51b60387d58db6b5cb401a (patch) | |
tree | 68a08e40f572520c24814d7bacc4271aca32b1dd /doc | |
parent | e146cc372b8daa70fa093c9f27cedf7188ce72fc (diff) |
xmpp push control flow
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.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/design/assistant/xmpp.mdwn | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/doc/design/assistant/xmpp.mdwn b/doc/design/assistant/xmpp.mdwn index a7370382e..b39d155e1 100644 --- a/doc/design/assistant/xmpp.mdwn +++ b/doc/design/assistant/xmpp.mdwn @@ -56,30 +56,38 @@ For pairing, a chat message is sent, containing: ### git push over XMPP -To request that a peer push to us, a chat message can be sent: +To request that a remote push to us, a chat message can be sent. <git-annex xmlns='git-annex' pushrequest="uuid" /> +The push request is typically sent directed at the account associated +with the remote, not to a specific client. So it can result in multiple +responses. + When a peer is ready to send a git push, it sends: <git-annex xmlns='git-annex' startingpush="uuid" /> +If that's a response to a pushrequest, it'll be directed at only the client +that requested the push. If a push request is being initiated, it'll be sent +to the account assicated with the remote. + The receiver runs `git receive-pack`, and sends back its output in -one or more chat messages: +one or more chat messages, directed to a specific client: <git-annex xmlns='git-annex' rp=""> 007b27ca394d26a05d9b6beefa1b07da456caa2157d7 refs/heads/git-annex report-status delete-refs side-band-64k quiet ofs-delta </git-annex> -The sender replies with the data from `git push` (which does not need -to actually be started until this point): +The sender replies with the data from `git push`, in +one or more chat messages, directed to the receiver: <git-annex xmlns='git-annex' sp=""> data </git-annex> When `git receive-pack` edits, the receiver indicates its exit -status: +status with a chat message, directed at the sender: <git-annex xmlns='git-annex' rpdone="0" /> |