We have now proliferation of different (re)implementations of git: JGit in Java, Dulwich in Python, Grit in Ruby; and there are other planned: git# / managed git in C# (GSoC Mono project), ObjectiveGit in Objective-C (for iPhone IIRC). At some time they would reach the point (or reached it already) of implementing git-daemon... but currently the documentation of git protocol is lacking. This can lead, as you can read from recent post on git mailing, to implementing details wrong (like Dulwich not using full SHA-1 where it should, leading to ordinary git clients to failing to fetch from it), or fail at best practices of implementation (like JGit last issue with deadlocking for multi_ack extension). The current documentation of git protocol is very sparse; the docs in Documentation/technical/pack-protocol.txt offer only a sketch of exchange. You can find more, including pkt-line format, a way sideband is multiplexed, and how capabilities are negotiated between server and client in design document for "smart" HTTP server, for example in Subject: Re: More on git over HTTP POST Message-ID: <20080803025602.GB27465@xxxxxxxxxxx> URL: http://thread.gmane.org/gmane.comp.version-control.git/91104/focus=91196 It would be really nice, I think, to have RFC for git pack protocol. And it would help avoid incompatibilities between different clients and servers. If the document would contain expected behaviour of client and server and Best Current Practices it would help avoid pitfals when implementing git-daemon in other implementation. Perhaps in the future it could be sent for inclusion as "official" RFC to IETF? (Dreaming big). Unfortunately I don't know enough about this area of code to write one myself. -- Jakub Narebski ShadeHawk or jnareb on #git Poland -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html