blog for the day

This commit is contained in:
Joey Hess 2012-11-06 16:36:58 -04:00
parent af44b7ec15
commit ce2b5e8c0c

View file

@ -0,0 +1,28 @@
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 `git push`
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 `splice(2)`, that
doesn't seem possible. It also will receive the exit status of
`git receive-pack` and propigate it to `git push`.
Also built the IO sides of `xmppPush` and `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.