HTTP pushes

8 messages, 6 authors, 2016-06-15 · open the first message on its own page

HTTP pushes

From: Nick Hengeveld <hidden>
Date: 2016-06-15 22:42:10

HTTP is currently listed as a read-only/unsupported method for doing
pushes, is that due to inherent problems with HTTP or just because
it hasn't been written yet?

I've built a working prototype of an HTTP push implementation using DAV.
It locks the remote branch file during the push and PUTs to temp files to
insure nobody else reads objects while they're being pushed.  It does
not validate remote objects - if they exist on the remote end as loose
objects or in a pack, local copies won't be pushed.  It supports sparse
object directories, and verifies that the remote branch is an ancestor
of the local branch before doing anything.

I'm curious to know whether it would be useful to proceed further, and
to know what I haven't thought about yet...

-- 
For a successful technology, reality must take precedence over public
relations, for nature cannot be fooled.

Re: HTTP pushes

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:42:10

Hi,

On Mon, 31 Oct 2005, Nick Hengeveld wrote:
HTTP is currently listed as a read-only/unsupported method for doing
pushes, is that due to inherent problems with HTTP or just because
it hasn't been written yet?

I've built a working prototype of an HTTP push implementation using DAV.
I think this is useful. There are restrictive firewalls out there, which 
only allow ports 80 and 443 to be connected to. Your work would fit in 
right there.

BTW, if the push would be relatively big, it would be nice to support 
pushing packs...

Ciao,
Dscho

Re: HTTP pushes

From: Daniel Barkalow <hidden>
Date: 2016-06-15 22:42:10

On Mon, 31 Oct 2005, Nick Hengeveld wrote:
HTTP is currently listed as a read-only/unsupported method for doing
pushes, is that due to inherent problems with HTTP or just because
it hasn't been written yet?
You obviously need a bit more than HTTP, and I don't personally know DAV. 
Also, I was writing things with all of the control on the receiving side, 
which isn't going to be the case here. If you've got a suitable 
environment for that sort of thing, I say go for it.

	-Daniel
*This .sig left intentionally blank*

Re: HTTP pushes

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:10

Johannes Schindelin [off-list ref] writes:
On Mon, 31 Oct 2005, Nick Hengeveld wrote:
quoted
HTTP is currently listed as a read-only/unsupported method for doing
pushes, is that due to inherent problems with HTTP or just because
it hasn't been written yet?

I've built a working prototype of an HTTP push implementation using DAV.
I had an impression that DAV has its own notion of version
control, so using git as a backend on the server side might be
an interesting exercise.
I think this is useful. There are restrictive firewalls out there, which 
only allow ports 80 and 443 to be connected to. Your work would fit in 
right there.
Another solution for this would be to allow connect.c to use a
HTTP connect passthru proxy. CVS does this with an ugly but easy
to understand notation:

    ':pserver;proxy=firewall;proxyport=3128:user@host:/path/to/repo

Re: HTTP pushes

From: David Lang <hidden>
Date: 2016-06-15 22:42:10

On Tue, 1 Nov 2005, Junio C Hamano wrote:
quoted
I think this is useful. There are restrictive firewalls out there, which
only allow ports 80 and 443 to be connected to. Your work would fit in
right there.
Another solution for this would be to allow connect.c to use a
HTTP connect passthru proxy. CVS does this with an ugly but easy
to understand notation:

   ':pserver;proxy=firewall;proxyport=3128:user@host:/path/to/repo
please note that there are firewalls out there that don't let you use port 
443 (and the connect command) as a free pass to do anything you want. They 
verify that you at least do a valid SSL handshake immediatly after or they 
figure you are trying to bypass them and shut you down.

David Lang


-- 
There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.
  -- C.A.R. Hoare

Re: HTTP pushes

From: Nick Hengeveld <hidden>
Date: 2016-06-15 22:42:10

On Tue, Nov 01, 2005 at 04:36:42PM -0800, Junio C Hamano wrote:
I had an impression that DAV has its own notion of version
control, so using git as a backend on the server side might be
an interesting exercise.
There are versioning extensions to DAV, but they're not supported in all
implementations - for example, Apache's mod_dav only supports the
distributed authoring methods and that's what I've been testing with.
Pushing should work fine to a version-aware DAV server, although the
push should fail if the repository files are version-controlled (they
don't have to be, and it wouldn't make sense for them to be anyway.)

-- 
For a successful technology, reality must take precedence over public
relations, for nature cannot be fooled.

Re: HTTP pushes

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:42:10

Hi,

On Tue, 1 Nov 2005, Junio C Hamano wrote:
I had an impression that DAV has its own notion of version
control, so using git as a backend on the server side might be
an interesting exercise.
IIRC Subversion can operate over DAV, too.

Ciao,
Dscho

Re: HTTP pushes

From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2016-06-15 22:42:10

Daniel Barkalow wrote:
You obviously need a bit more than HTTP...
 >

Not really, as long as you can GET and POST arbitrary files.  Arguably, 
that's not how POST is typically used, though.
	
	-hpa
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help