From: Yaroslav Halchenko Date: Tue, 10 May 2016 22:10:32 GMT Subject: Re: wishlist; unify behavior while cloning non-bare repos over http to be in line with ssh/local Message-ID: <20160510221032.GV23764@onerussian.com> In-Reply-To: On Tue, 10 May 2016, Jacob Keller wrote: > > The necessary update to the client might as simple as using > > $GIVEN_URL/.git/ and attempting the request again after seeing the > > probe for $GIVEN_URL/info/refs fails. > I know at least Jenkin's Git plugin has a workaround to solve this > issue that is quite similar. On Tue, 10 May 2016, Junio C Hamano wrote: > >> traverse website since could lead to dangerous places. But .git is under > >> originating url directory, as well as info/ or HEAD or any other object > >> accessed by git, so IMHO this concern is not a concern. > I am afraid that the reason why you saw no response is primarily > because nobody is interested in extending dumb commit-walker HTTP > transport after the world has largely moved on and abandoned it. > The necessary update to the client might as simple as using > $GIVEN_URL/.git/ and attempting the request again after seeing the > probe for $GIVEN_URL/info/refs fails. Sure -- workarounds are possible, and we are at the state that many dependent projects seems are doing that already (as above noted Jenkin's Git plugin, smth along the lines probably done by github for https as well). In my case I even have managed to erect a lovely apache rewrite rule which seems to work, so I can just 'git clone --recursive' a collection of 30 submodules without a hiccup (we are also interested in .git/annex part here ;) ). Citing here if it comes handy for anyone # To overcome http://thread.gmane.org/gmane.comp.version-control.git/293777 # we need to rewrite urls so that there is no need for explicit .git/ RewriteEngine On RewriteCond "!.*/\.git/.*" RewriteRule "(.*?/)((?