Laying the groundwork for git push over XMPP. BTW, the motivation for doing this now is that if the assistant can push git data peer-to-peer, users who are entirely using the cloud don't need to set up a git repo in the cloud somewhere. Instead, a single special remote in the cloud will be all they need. So this is a keystone in the assistant's cloud support.
I'm building the following pipeline:
git push <--> git-annex xmppgit <--> xmppPush <-------> xmpp | git receive-pack <--> xmppReceivePack <---------------> xmpp
A tricky part of this is
git-annex xmppgit, which is run by
rather than the usual
ssh. Rather than speak XMPP itself, that feeds the
data through the assistant daemon, using some special FDs that are set
up by the assistant when it runs
git push, and communicated via
environment variables. I hoped to set up a pipe and not need it to do any
work on its own, but short of using the linux-specific
doesn't seem possible. It also will receive the exit status of
git receive-pack and propigate it to
Also built the IO sides of
xmppReceivePack although these
are not tested. The XMPP sides of them come next.
Stuffing lots of git-annex branded USB keys into envelopes tonight, while watching the election coverage.