Hi, The new protocol i mean is the network transfer protocol, like rsync. Is the word "dumb protocol" you mean is the network transfer protocol ? But seem if i just implement a new protocol using jgit but not in C (integrate with git core code), it may not worth because more of the client using git core command line tool as git client. Thank you ~ Regards, Patrick On Fri, Sep 5, 2008 at 10:52 PM, Shawn O. Pearce <spearce@xxxxxxxxxxx> wrote: > Mike Hommey <mh@xxxxxxxxxxxx> wrote: >> On Fri, Sep 05, 2008 at 05:22:57PM +0800, Sky Patrick wrote: >> > >> > If i want to write a new protocol for file transfer and would like to >> > to integrate it with git. Is it possible and easy to integrate it ? >> > Currently, i know that jgit may achieve it, but it is a Java >> > implementation and may not work with git command line program that >> > written in C. > > Writing a dumb protocol support isn't difficult in JGit due to the > abstractions in place. Its a little harder in C Git, unless Mike > (or someone else) can abstract out the cURL library usage and make > it more flexible. Though these days cURL supports just about any > file transfer protocol known. > >> First, it would depend if you need this new protocol to be a dumb >> protocol (like rsync and http) or "native" (git or ssh). > > Writing a smart protocol is a PITA. Look at the smart HTTP effort > I am trying to do. OK, I'm not spending a whole lot of time on > it, but its a damn difficult thing to do well, and to keep simple > enough that it can be described and reimplemented. Otherwise we > have another that-thing-before-Git on our hands. > >> I've been meaning to refactor the dumb protocol "stack" for a while, but >> haven't gone much further than ideas in my mind (i.e. no code). I also >> have some start of http code recfactoring, that is waiting for this dumb >> protocol rework to be completed. > > Yea. One reason why I'm doing the smart HTTP effort prototype in > JGit is because the C code structure makes this harder to implement > without first going through a number of refactorings. Though for the > smart HTTP stuff I really need to refactor fetch-pack/send-pack and > upload-pack/receive-pack, not the dumb walkers. > > -- > Shawn. > -- 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