top | item 4765228

Git push over XMPP

78 points| bokchoi | 13 years ago |joeyh.name | reply

17 comments

order
[+] ComputerGuru|13 years ago|reply
Interesting. I think there's a demand for a generic, protocol-agnostic git push framework where you can write plugins for both sending and automated receiving.

All git patches boil can be boiled down to ASCII patches. There's no reason you can't write a framework to send/receive ASCII-formatted git patches/pulls/pushes via email, xmpp, twitter, etc.

[+] premchai21|13 years ago|reply
Darcs's send and apply work on this principle, of course, though I haven't seen it applied to XMPP specifically. As I recall, the manual even has an example of how to add an easy hook in Mutt to apply a patch from email. git diff and git apply are available for single patches, of course, and git format-patch and git am are optimized for the mail case so that multiple commits can be sent at once, though darcs apply has integrated PGP signature checking and at a glance I don't see anything similar in the git versions. git-send-pack and git-receive-pack also have an underlying role not strongly coupled to the overlay transport, but seem to be designed for bidirectional communication so that the repositories can negotiate about which objects they already have.
[+] revelation|13 years ago|reply
If you're interested in building this kind of thing, JGit might be a good starting point, as it offers the right amount of flexibility [1] to be able to pull this off and stay sane in the process [2].

[1]: A good example would be http://git.eclipse.org/c/jgit/jgit.git/tree/org.eclipse.jgit... (Git over Amazon S3)

[2]: If programming Java allows you to do this, of course. I'm not too deep into the JVM ecosystem, so I don't know if you could just use a language that compiles to JVM bytecode.

[+] mey|13 years ago|reply
How does git handle binary/highorder byte data for patching?
[+] jlgreco|13 years ago|reply
I've been wondering about the possibility of doing this ever since I saw that Joey has been working on XMPP stuff for git-annex. Would be very nice to see this become a thing of it's own.
[+] e12e|13 years ago|reply
I really like this idea, and kudos to the author for coming up with a pragmatic (if possibly insane) way to get things done... but when I read stuff like this:

  > Imagine if you could send git pushes to any of your friends on
  > Google Talk or other Jabber (XMPP) servers. Even though you're in
  > different places and your computers probably cannot talk to
  > one-another directly, you can share a git repository, without
  > relying on a git hosting provider such as GitHub.
I really just want to weep. Hopefully some of this will go away with ip6 (no more silly NATing for nothing). Broken networks with asymmetric bandwidth hawked by dying conglomerates protecting their ancient signalling technology (and now antiquated media distribution channels) will haunt us for decades.

[edit: quote formatting]

[+] joeyh|13 years ago|reply
I agree of course.. But it's even worse than that. Seems like half the time ipv6 comes up on NANOG, they're talking about the abdomination that is NAT66. (Rest of the time they're talking about NAT46 of course.)

I have little confidence in the Internet's end-to-end routing getting fixed unless and until the Internet backbone itself changes shape to something less conducive to monopoly.

[+] e12e|13 years ago|reply
Especially since in practice for most people they'll just be replacing a third party git hub with a third party xmpp server. Which of course is of benefit to those that don't know they might want to have a github/shell account with their own git on it -- but more or less swaps out one problem for another (almost) equivalent problem.
[+] scrrr|13 years ago|reply
hm as someone who always has a few servers up in the cloud i found the idea exotic at first. especially since you dont need github, any ssh connection between two computers will do. but thats not always easy and the more i think about it, git over xmpp sounds like a cool idea. but still, in the end one can just email or dropbox the whole zipped repo. and git patches and whatnot.
[+] jlgreco|13 years ago|reply
I think, using git for what it traditionally is used for, there probably isn't much demand for XMPP. Joey's thing seems to be expanding the horizons of what we can use git for though. Building cooler toys out of git, not just with it.