{"thread":{"id":"2285","subject":"HTTP pushes","startedAt":"2005-11-01T02:02:48Z","lastAt":"2005-11-03T04:12:36Z","messageCount":8,"participants":["Nick Hengeveld","Johannes Schindelin","Daniel Barkalow","Junio C Hamano","David Lang","H. Peter Anvin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"10909","messageId":"20051101020248.GA3928@reactrix.com","threadId":"2285","inReplyTo":null,"subject":"HTTP pushes","fromName":"Nick Hengeveld","fromEmail":"nickh@reactrix.com","sentAt":"2005-11-01T02:02:48Z","receivedAt":"2005-11-01T02:02:48Z","isPatch":false,"sender":{"key":"nickh@reactrix.com","avatar":null},"body":"HTTP is currently listed as a read-only/unsupported method for doing\npushes, is that due to inherent problems with HTTP or just because\nit hasn't been written yet?\n\nI've built a working prototype of an HTTP push implementation using DAV.\nIt locks the remote branch file during the push and PUTs to temp files to\ninsure nobody else reads objects while they're being pushed.  It does\nnot validate remote objects - if they exist on the remote end as loose\nobjects or in a pack, local copies won't be pushed.  It supports sparse\nobject directories, and verifies that the remote branch is an ancestor\nof the local branch before doing anything.\n\nI'm curious to know whether it would be useful to proceed further, and\nto know what I haven't thought about yet...\n\n-- \nFor a successful technology, reality must take precedence over public\nrelations, for nature cannot be fooled.\n"},{"id":"10940","messageId":"Pine.LNX.4.63.0511012008310.11979@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"2285","inReplyTo":"20051101020248.GA3928@reactrix.com","subject":"Re: HTTP pushes","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2005-11-01T19:10:16Z","receivedAt":"2005-11-01T19:10:16Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 31 Oct 2005, Nick Hengeveld wrote:\n\n> HTTP is currently listed as a read-only/unsupported method for doing\n> pushes, is that due to inherent problems with HTTP or just because\n> it hasn't been written yet?\n> \n> I've built a working prototype of an HTTP push implementation using DAV.\n\nI think this is useful. There are restrictive firewalls out there, which \nonly allow ports 80 and 443 to be connected to. Your work would fit in \nright there.\n\nBTW, if the push would be relatively big, it would be nice to support \npushing packs...\n\nCiao,\nDscho\n"},{"id":"10942","messageId":"Pine.LNX.4.64.0511011500580.25300@iabervon.org","threadId":"2285","inReplyTo":"20051101020248.GA3928@reactrix.com","subject":"Re: HTTP pushes","fromName":"Daniel Barkalow","fromEmail":"barkalow@iabervon.org","sentAt":"2005-11-01T20:06:42Z","receivedAt":"2005-11-01T20:06:42Z","isPatch":false,"sender":{"key":"barkalow@iabervon.org","avatar":"https://avatars.githubusercontent.com/u/55364219?v=4"},"body":"On Mon, 31 Oct 2005, Nick Hengeveld wrote:\n\n> HTTP is currently listed as a read-only/unsupported method for doing\n> pushes, is that due to inherent problems with HTTP or just because\n> it hasn't been written yet?\n\nYou obviously need a bit more than HTTP, and I don't personally know DAV. \nAlso, I was writing things with all of the control on the receiving side, \nwhich isn't going to be the case here. If you've got a suitable \nenvironment for that sort of thing, I say go for it.\n\n\t-Daniel\n*This .sig left intentionally blank*\n"},{"id":"10974","messageId":"7v1x1z51id.fsf@assigned-by-dhcp.cox.net","threadId":"2285","inReplyTo":"Pine.LNX.4.63.0511012008310.11979@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: HTTP pushes","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-11-02T00:36:42Z","receivedAt":"2005-11-02T00:36:42Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> On Mon, 31 Oct 2005, Nick Hengeveld wrote:\n>\n>> HTTP is currently listed as a read-only/unsupported method for doing\n>> pushes, is that due to inherent problems with HTTP or just because\n>> it hasn't been written yet?\n>> \n>> I've built a working prototype of an HTTP push implementation using DAV.\n\nI had an impression that DAV has its own notion of version\ncontrol, so using git as a backend on the server side might be\nan interesting exercise.\n\n> I think this is useful. There are restrictive firewalls out there, which \n> only allow ports 80 and 443 to be connected to. Your work would fit in \n> right there.\n\nAnother solution for this would be to allow connect.c to use a\nHTTP connect passthru proxy. CVS does this with an ugly but easy\nto understand notation:\n\n    ':pserver;proxy=firewall;proxyport=3128:user@host:/path/to/repo\n"},{"id":"10977","messageId":"Pine.LNX.4.62.0511011644500.1362@qynat.qvtvafvgr.pbz","threadId":"2285","inReplyTo":"7v1x1z51id.fsf@assigned-by-dhcp.cox.net","subject":"Re: HTTP pushes","fromName":"David Lang","fromEmail":"david.lang@digitalinsight.com","sentAt":"2005-11-02T00:46:23Z","receivedAt":"2005-11-02T00:46:23Z","isPatch":false,"sender":{"key":"david.lang@digitalinsight.com","avatar":null},"body":"On Tue, 1 Nov 2005, Junio C Hamano wrote:\n\n>> I think this is useful. There are restrictive firewalls out there, which\n>> only allow ports 80 and 443 to be connected to. Your work would fit in\n>> right there.\n>\n> Another solution for this would be to allow connect.c to use a\n> HTTP connect passthru proxy. CVS does this with an ugly but easy\n> to understand notation:\n>\n>    ':pserver;proxy=firewall;proxyport=3128:user@host:/path/to/repo\n>\n\nplease note that there are firewalls out there that don't let you use port \n443 (and the connect command) as a free pass to do anything you want. They \nverify that you at least do a valid SSL handshake immediatly after or they \nfigure you are trying to bypass them and shut you down.\n\nDavid Lang\n\n\n-- \nThere 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.\n  -- C.A.R. Hoare\n"},{"id":"10979","messageId":"20051102005957.GB3928@reactrix.com","threadId":"2285","inReplyTo":"7v1x1z51id.fsf@assigned-by-dhcp.cox.net","subject":"Re: HTTP pushes","fromName":"Nick Hengeveld","fromEmail":"nickh@reactrix.com","sentAt":"2005-11-02T00:59:57Z","receivedAt":"2005-11-02T00:59:57Z","isPatch":false,"sender":{"key":"nickh@reactrix.com","avatar":null},"body":"On Tue, Nov 01, 2005 at 04:36:42PM -0800, Junio C Hamano wrote:\n\n> I had an impression that DAV has its own notion of version\n> control, so using git as a backend on the server side might be\n> an interesting exercise.\n\nThere are versioning extensions to DAV, but they're not supported in all\nimplementations - for example, Apache's mod_dav only supports the\ndistributed authoring methods and that's what I've been testing with.\nPushing should work fine to a version-aware DAV server, although the\npush should fail if the repository files are version-controlled (they\ndon't have to be, and it wouldn't make sense for them to be anyway.)\n\n-- \nFor a successful technology, reality must take precedence over public\nrelations, for nature cannot be fooled.\n"},{"id":"10980","messageId":"Pine.LNX.4.63.0511020209400.13811@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"2285","inReplyTo":"7v1x1z51id.fsf@assigned-by-dhcp.cox.net","subject":"Re: HTTP pushes","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2005-11-02T01:10:06Z","receivedAt":"2005-11-02T01:10:06Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 1 Nov 2005, Junio C Hamano wrote:\n\n> I had an impression that DAV has its own notion of version\n> control, so using git as a backend on the server side might be\n> an interesting exercise.\n\nIIRC Subversion can operate over DAV, too.\n\nCiao,\nDscho\n"},{"id":"11056","messageId":"43698E34.1060805@zytor.com","threadId":"2285","inReplyTo":"Pine.LNX.4.64.0511011500580.25300@iabervon.org","subject":"Re: HTTP pushes","fromName":"H. Peter Anvin","fromEmail":"hpa@zytor.com","sentAt":"2005-11-03T04:12:36Z","receivedAt":"2005-11-03T04:12:36Z","isPatch":false,"sender":{"key":"hpa@zytor.com","avatar":null},"body":"Daniel Barkalow wrote:\n> \n> You obviously need a bit more than HTTP...\n >\n\nNot really, as long as you can GET and POST arbitrary files.  Arguably, \nthat's not how POST is typically used, though.\n\t\n\t-hpa\n"}]}