Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[egit-dev] RFC smart HTTP push

"Shawn O. Pearce" <spearce@xxxxxxxxxxx> wrote:
> "Lay, Stefan" <stefan.lay@xxxxxxx> wrote:
> > > We could pioneer the smart push over HTTP protocol in JGit
> > 
> > +1 I would appreciate this.
> 
> Well then, I now know what my project for today will be.  Picking up
> smart HTTP by trying to get the push side implemented.

RFC done.  6 patches on Gerrit:
 
  I0b889564  Add getPacks to ObjectDirectory
  Ia0f1a425  Simple dumb HTTP server for Git
  I6f31f653  Teach ReceivePack how to use an RPC style interface
  Id0e349c3  Expose RefAdvertiser for reuse outside of the transport package
  Iaa331a47  Expose PacketLineOut for reuse outside of the transport package
  Ie4f6e0c7  Smart push over HTTP: server side
  I0ad95dea  Smart push over HTTP: client side

For example:

$ ./jgit.sh push http://www.kernel.org/pub/scm/git/git.git refs/heads/master
fatal: Smart HTTP transport not supported

$ ./jgit.sh push http://localhost:8080/jgit/kernel/linux-2.6.git refs/heads/master:refs/heads/shawn-jgit
Writing objects:        100% (808/808)
To http://localhost:8080/jgit/kernel/linux-2.6.git
 * [new branch]      master -> shawn-jgit


Given how closely this smart HTTP push protocol matches the
git-receive-pack protocol, this should be fairly trivial to port
to C git.  The real question is, would Junio accept it.  :-)

Alex, I'm sure this is quite a bit different from what were
doing with a smart HTTP fetch, but I think we now have start of
a foundation we can use to build additional HTTP functionality,
and eventually I'd like to also do some gitweb-y sort of thing.

-- 
Shawn.


Back to the top