On Mon, 25 May 2015 13:44:49 -0700 (PDT)
Matthias Lantsch <alasar.gogle.su...@gmail.com> wrote:

> Hello community I have a problem with the "new" http-backend of git.
> I have set up the git-http-backend to use the "smart" http version of
> git. Authentification works fine, I can clone my repository over http
> and https as expected.
> For testing purposes, GIT_SSL_NO_VERIFY and http.receivepack are both
> set to true.
> But when I am trying to push, I get a 404 header back and a return
> code 22:
> > PROPFIND /git/repo/test.git/ HTTP/1.1

How did you obtain there results?  Run Git client having set


in the environment, right?

I then wonder where are the attempts to do GET requests against


in this log output before that PROPFIND attempt.

I mean, if the smart HTTP client falls back to dumb transport after
getting 403, then it should have performed at least a single GET/POST
request to hit that error condition.  Did you see it?

> That of course had me confused, because PROPFIND is a Webdav call and
> I thought the http backend would only use "smart" http (webdav is not
> enabled on the server)
> In an answer *here* 
> <http://serverfault.com/questions/180413/authentication-for-git-push-over-http>
> it confirms that Webdav should actually not even be used. It also
> states that Webdav will be used as backup if the client receives a
> 403 header. But my Access log as well as the trace do not show any
> sign of that.

> Through my hook script I got a dump of the environement
> that is submitted to the script:
> export CONTENT_TYPE='text/xml'
> export QUERY_STRING='req=git/repo/test.git/'
> The error log logging the error output of the git-http-backend
> contains that:
> Status: 404 Not Found
> Request not supported: '/theRealPathToTheGitRoot/gitroot/test.git/

I'm afraid this part is not interesting as it's already about WebDAV
being used, and we want to prevent this situation, right?
Hence, the place to debug is why WebDAV is being used in the first

> Did I mess something up? I am sure that Webdav should not be required
> for the backend to work.

Well, may be unless you have truly outdated Git setup on the server.
I'm not even sure what version is that.

I'm not sure it helps but I once helped someone on SO to set up
authenticated pushes over Apache, and my answer contains more
background info on how Git client performs HTTP requests [1].
May be this will help you sort things out.

I'd try plain curl calls like

  $ curl -X GET http://server/git/repo/test.git/info/refs?service=...

and see what happens.

You might also try asking on the main Git list as well, as it's being
read by a person who actually implemented that smart HTTP transport.

1. http://stackoverflow.com/a/26383935

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to