blog for the day
This commit is contained in:
parent
6acc4fa83f
commit
ef34aa2be1
1 changed files with 52 additions and 0 deletions
52
doc/design/assistant/blog/day_126__mr_watson_come_here.mdwn
Normal file
52
doc/design/assistant/blog/day_126__mr_watson_come_here.mdwn
Normal file
|
@ -0,0 +1,52 @@
|
|||
I'm stunned and stoked to have gotten git push over XMPP working today.
|
||||
And am nearly out of steam, it was a wild ride..
|
||||
|
||||
To xmpp::joey@kitenet.net
|
||||
* [new branch] master -> refs/xmpp/newmaster
|
||||
|
||||
The surprising part is how close my initial implementation came to just
|
||||
working on the first try. It had around 3 bugs, which took hours of staring
|
||||
at debugging output to find:
|
||||
|
||||
1. The git push action was run in the same thread as the XMPP
|
||||
client, which prevented the client from continuing to run and relaying
|
||||
messages.
|
||||
2. The git-receive-pack side waited on the wrong thread, so didn't
|
||||
notice when the program was done.
|
||||
3. I accidentially used the wrong attribute name when sending a ReceivePackDone
|
||||
message.
|
||||
|
||||
But all in all, it just worked.
|
||||
|
||||
Here's a sample of the actual data sent when one file is added to the
|
||||
repository (also includes the corresponding update to the git-annex branch):
|
||||
|
||||
MDA4NjhhMmNmOGZjMWE3MTlkOGVjOWVmOWZiMGZiNjVlODc2NjQ1NDAyMTAgODIwNTZjMDM4
|
||||
ZjU2YzE1ODdjYzllOWRhNzQzMzU0YjE4NzNjZWJlOSByZWZzL3htcHAvbmV3bWFzdGVyACBy
|
||||
ZXBvcnQtc3RhdHVzIHNpZGUtYmFuZC02NGswMDAw
|
||||
|
||||
UEFDSwAAAAIAAAADnAx4nJXLTQ4CIQxA4T2n4AKaAqVAYoxL4y2gU+Jo5iczdeHtnSu4eMm3
|
||||
ebqJ2NwgSCLmNkTBlKFCYwwhoHOtQ+scqZCwWesms9pcPffc2dXkypCFi/TSG/RGUXIiwojg
|
||||
HZj60eey2cciX3uXfbeX18Hbe1SZRc9HV+tC9FgyJW9PgACGl2kaVeXfz/wArHQ81qMGeJwz
|
||||
NDIAAoVUI4ZZB9RW1E8NtXp5t77/fn3hw41cl2MNIbIZqTk5+Qwerw+aJX2INjsffYndtdCz
|
||||
5mZWLDdUQV5qeVpmDtCQnx/3/6s40+Q4P/7O+Y4ShS+1Ad83AwC6CirftAt4nK3MsRGDMAwF
|
||||
0IkcSVgSdpkidzRUmcDWBy4pSAEFl+mzRN4A77a9Tmr7vlz06e8lzoPmmb5Mz+k+mD/SkTkl
|
||||
eFHPq9eqQ+nSzFsWaDFnFmCMCEOvHgLrCrQxS7AWdvUVhv9uPwHxMbfumlvWdco1RLL4wSQF
|
||||
g0uFFOKu3Q==
|
||||
|
||||
Git said this push took 385 bytes; after base64 encoding to transport it over
|
||||
XMPP as shown above, it needs 701 bytes, and the XMPP envelope and encryption
|
||||
adds more overhead (although the XMPP connection may also be compressed?)
|
||||
|
||||
Not the most efficient git transport, but still a practical one!
|
||||
|
||||
----
|
||||
|
||||
Big thanks by the way to meep, who posted a comment reminding me about
|
||||
`git-remote-helpers`. This was the right thing to use for XMPP over git,
|
||||
it lets the git remote be configured with `url = xmpp::user@host`.
|
||||
|
||||
----
|
||||
|
||||
Next, I need to get the assistant to use this for syncing. Currently, it only
|
||||
pushes a test branch.
|
Loading…
Add table
Reference in a new issue