{"thread":{"id":"43111","subject":"Re: git and \"dumb protocols\"","startedAt":"2006-11-02T10:36:07Z","lastAt":"2006-11-03T23:27:21Z","messageCount":10,"participants":["Johannes Schindelin","Jakub Narebski","Petr Baudis","Daniel Barkalow","Matthieu Moy","Andy Whitcroft"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"298619","messageId":"vpqu01i16g8.fsf@ecrins.imag.fr","threadId":"43111","inReplyTo":null,"subject":"git and \"dumb protocols\"","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2006-11-02T10:36:07Z","receivedAt":"2006-11-02T10:36:07Z","isPatch":false,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"Hi,\n\nIs it possible with git to push to a server on which git is not\ninstalled, and if so, how?\n\nFrom the man page of git, sftp doesn't seem supported, and ssh://\ncomplains about git-receive-pack not being installed on the server.\n\nThe man page documents a rsync:// protocol, but\n\n$ git push rsync://some.location.com/\nfatal: I don't handle protocol 'rsync'\n$ \n\nWhat am I missing?\n\nThanks,\n\n-- \n"},{"id":"297411","messageId":"4549CBB1.7010005@shadowen.org","threadId":"43111","inReplyTo":"vpqu01i16g8.fsf@ecrins.imag.fr","subject":"Re: git and \"dumb protocols\"","fromName":"Andy Whitcroft","fromEmail":"apw@shadowen.org","sentAt":"2006-11-02T10:42:57Z","receivedAt":"2006-11-02T10:42:57Z","isPatch":false,"sender":{"key":"apw@shadowen.org","avatar":"https://gravatar.com/avatar/d3088262854661a913ef35cc40fedcc270142d4461791142bc1ea0b2a4e2e147?d=mp&s=160"},"body":"Matthieu Moy wrote:\n> Hi,\n> \n> Is it possible with git to push to a server on which git is not\n> installed, and if so, how?\n> \n>>From the man page of git, sftp doesn't seem supported, and ssh://\n> complains about git-receive-pack not being installed on the server.\n> \n> The man page documents a rsync:// protocol, but\n> \n> $ git push rsync://some.location.com/\n> fatal: I don't handle protocol 'rsync'\n> $ \n> \n> What am I missing?\n\nTo push only makes sense when you have git installed at the receiving\nend.  It is the interaction between the source and destination git\ninstances which renders the push an effective optimisation.\n\nIf you are using rsync, then you can just rsync the whole repository out\nand what is out there is as valid as your own copy.  Of course a repack\nwill make the whole thing changed and you'll pay on the next rsync.\n\ngit is designed with this use model involved, you 'git\nupdate-server-info' then rsync the repo in-toto out to your http server\nand it can be fetch'ed from (all be it less efficiently) by another\nclient.  All without any requirement for anything other than passive\ndata delivery at the server end.  Great if you don't have shell access etc.\n\n-apw\n"},{"id":"296346","messageId":"20061102104848.GH20017@pasky.or.cz","threadId":"43111","inReplyTo":"vpqu01i16g8.fsf@ecrins.imag.fr","subject":"Re: git and \"dumb protocols\"","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-11-02T10:48:48Z","receivedAt":"2006-11-02T10:48:48Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"  Hi,\n\nDear diary, on Thu, Nov 02, 2006 at 11:36:07AM CET, I got a letter\nwhere Matthieu Moy <Matthieu.Moy@imag.fr> said that...\n> Is it possible with git to push to a server on which git is not\n> installed, and if so, how?\n\n  yes, you can push using HTTP DAV - just push to an HTTP URL; make sure\nyou have git-http-push compiled, it is sometimes not compiled because it\nunfortunately adds dependencies on couple of more libraries.\n\n  Beware that this is inherently not safe for anonymous push access,\nsince malicious client with write access can destroy the repository. You\nwill want to protect write access to the repository by .htaccess file.\n\n  I think a patch that would add support for pushing over sftp or some\nother dumb protocol would be welcome. One problem is with proper locking\nof ref updates (not sure how well would sftp cope with that), another is\nthat you will need to do git-update-server-info's job on the server\nside.\n\n  If you already have SSH access to the server, why not compile Git\nthere and install it to your $HOME, though?\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\n#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj\n$/=unpack('H*',$_);$_=`echo 16dio\\U$k\"SK$/SM$n\\EsN0p[lN*1\n"},{"id":"293859","messageId":"Pine.LNX.4.63.0611021151340.1670@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"43111","inReplyTo":"vpqu01i16g8.fsf@ecrins.imag.fr","subject":"Re: git and \"dumb protocols\"","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-11-02T10:51:57Z","receivedAt":"2006-11-02T10:51:57Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 2 Nov 2006, Matthieu Moy wrote:\n\n> Is it possible with git to push to a server on which git is not\n> installed, and if so, how?\n\nSee\n\nhttp://www.kernel.org/git/gitweb.cgi?p=git/git.git;a=blob;h=ba191569af9501117322e1881160226a74867007;hb=html;f=howto/setup-git-server-over-http.txt\n\nHth,\nDscho\n"},{"id":"296437","messageId":"Pine.LNX.4.63.0611021155500.1670@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"43111","inReplyTo":"20061102104848.GH20017@pasky.or.cz","subject":"Re: git and \"dumb protocols\"","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-11-02T10:57:16Z","receivedAt":"2006-11-02T10:57:16Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 2 Nov 2006, Petr Baudis wrote:\n\n>   If you already have SSH access to the server, why not compile Git\n> there and install it to your $HOME, though?\n\nCould be a number of reasons:\n\n- no compiler\n- quota issues\n- missing support for that particular platform\n- time constraints\n- etc\n\nHappened to me.\n\nCiao,\nDscho\n"},{"id":"297718","messageId":"20061102110218.GI20017@pasky.or.cz","threadId":"43111","inReplyTo":"Pine.LNX.4.63.0611021155500.1670@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: git and \"dumb protocols\"","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-11-02T11:02:18Z","receivedAt":"2006-11-02T11:02:18Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"  Hi,\n\nDear diary, on Thu, Nov 02, 2006 at 11:57:16AM CET, I got a letter\nwhere Johannes Schindelin <Johannes.Schindelin@gmx.de> said that...\n> On Thu, 2 Nov 2006, Petr Baudis wrote:\n> \n> >   If you already have SSH access to the server, why not compile Git\n> > there and install it to your $HOME, though?\n> \n> Could be a number of reasons:\n> \n> - no compiler\n> - quota issues\n\n  good points.\n\n> - missing support for that particular platform\n\n  If not with conjunction with the following (\"- time constraints\"), it\nwould be superb to add support for that particular platform. :^)\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\n#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj\n$/=unpack('H*',$_);$_=`echo 16dio\\U$k\"SK$/SM$n\\EsN0p[lN*1\n"},{"id":"297157","messageId":"vpq4ptixdfj.fsf@ecrins.imag.fr","threadId":"43111","inReplyTo":"20061102104848.GH20017@pasky.or.cz","subject":"Re: git and \"dumb protocols\"","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2006-11-02T12:04:16Z","receivedAt":"2006-11-02T12:04:16Z","isPatch":false,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"Petr Baudis <pasky@suse.cz> writes:\n\n>   yes, you can push using HTTP DAV - just push to an HTTP URL; make sure\n> you have git-http-push compiled, it is sometimes not compiled because it\n> unfortunately adds dependencies on couple of more libraries.\n\nThat's great. I don't need this right now, but having worked behind a\nfirewall + proxy, I know how appreciable it is to push with DAV ;-).\n\n>   I think a patch that would add support for pushing over sftp or some\n> other dumb protocol would be welcome. One problem is with proper locking\n> of ref updates (not sure how well would sftp cope with that), another is\n> that you will need to do git-update-server-info's job on the server\n> side.\n\nIt should be possible (but not implemented AAUI) also to generate the\nadditional info of git-update-server-info on the client, isn't it?\n\n>   If you already have SSH access to the server, why not compile Git\n> there and install it to your $HOME, though?\n\nI'll probably do, but my concern is broader than that. I like the\nability to use almost any webhosting service for my revision control.\nGNU Arch was quite good at that, bzr is also (doesn't support webdav\nvery well yet, but read-only-HTTP, sftp and ftp are there), so I'd\nlike git to do the same.\n\nAnd yes, there are tons of reasons not to install git on the server.\nIn particular, the fact that I'm not root there, and too lazy to do\nmore than \"aptitude install git\" with pleasure ;-).\n\n-- \n"},{"id":"296001","messageId":"eicnbe$v6l$1@sea.gmane.org","threadId":"43111","inReplyTo":"vpq4ptixdfj.fsf@ecrins.imag.fr","subject":"Re: git and \"dumb protocols\"","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-11-02T12:12:53Z","receivedAt":"2006-11-02T12:12:53Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Matthieu Moy wrote:\n\n> I'll probably do, but my concern is broader than that. I like the\n> ability to use almost any webhosting service for my revision control.\n> GNU Arch was quite good at that, bzr is also (doesn't support webdav\n> very well yet, but read-only-HTTP, sftp and ftp are there), so I'd\n> like git to do the same.\n\nWell, git can fetch (read) via http, https, ftp, sftp, rsync, git, ssh+git;\nit can push via http(s) with WebDAV, and ssh+git (ssh+git meaning via ssh,\nwith git installed on the server side).\n\nBTW. rsync is considered obsolete, and suitable only for initial cloning,\nperhaps.\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n\n"},{"id":"298701","messageId":"20061102122125.GM20017@pasky.or.cz","threadId":"43111","inReplyTo":"vpq4ptixdfj.fsf@ecrins.imag.fr","subject":"Re: git and \"dumb protocols\"","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-11-02T12:21:25Z","receivedAt":"2006-11-02T12:21:25Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Thu, Nov 02, 2006 at 01:04:16PM CET, I got a letter\nwhere Matthieu Moy <Matthieu.Moy@imag.fr> said that...\n> Petr Baudis <pasky@suse.cz> writes:\n> >   I think a patch that would add support for pushing over sftp or some\n> > other dumb protocol would be welcome. One problem is with proper locking\n> > of ref updates (not sure how well would sftp cope with that), another is\n> > that you will need to do git-update-server-info's job on the server\n> > side.\n> \n> It should be possible (but not implemented AAUI) also to generate the\n> additional info of git-update-server-info on the client, isn't it?\n\nYes, that's what git-http-push does.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\n#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj\n$/=unpack('H*',$_);$_=`echo 16dio\\U$k\"SK$/SM$n\\EsN0p[lN*1\n"},{"id":"296589","messageId":"Pine.LNX.4.64.0611031803370.9789@iabervon.org","threadId":"43111","inReplyTo":"vpq4ptixdfj.fsf@ecrins.imag.fr","subject":"Re: git and \"dumb protocols\"","fromName":"Daniel Barkalow","fromEmail":"barkalow@iabervon.org","sentAt":"2006-11-03T23:27:21Z","receivedAt":"2006-11-03T23:27:21Z","isPatch":false,"sender":{"key":"barkalow@iabervon.org","avatar":"https://avatars.githubusercontent.com/u/55364219?v=4"},"body":"On Thu, 2 Nov 2006, Matthieu Moy wrote:\n\n> I'll probably do, but my concern is broader than that. I like the\n> ability to use almost any webhosting service for my revision control.\n> GNU Arch was quite good at that, bzr is also (doesn't support webdav\n> very well yet, but read-only-HTTP, sftp and ftp are there), so I'd\n> like git to do the same.\n\nYou should be able to put together the repository you want hosted locally \nand use any webhosting service updating procedure to update what's hosted. \nAFAIK, git.kernel.org is a completely dumb mirror of master.kernel.org, \nworking like that.\n\nThe main thing is that you want \"objects\" to be updated before \"refs\", and \nyou don't want to do any git operations during the mirroring. But it's not \neven that important, so long as whenever you leave the mirror for a while, \nit matches some final state (with respect to git) of the master.\n\nWhat you actually care about the git-native stuff for is preparing the \nmaster image, so that you don't have random cruft from your working \nrepository, and then you just want it to mirror efficiently.\n\n\t-Daniel\n"}]}