git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git-http-backend: anonymous read, authenticated write

From
Jeff King <peff@peff.net>
Date
Apr 11, 2013, 19:34 UTC
Message-ID
<20130411193434.GE3177@sigill.intra.peff.net>
In-Reply-To
<CAAExw5t3rk_R1GB9OMVKjPYEMRQg1gNSUGQtEK71m1Ux01N27w@mail.gmail.com>
On Thu, Apr 11, 2013 at 08:52:56AM +0200, Magnus Therning wrote:
Show 7 quoted lines
> > The documentation should probably make the use of http.receivepack more
> > clear in this situation.
> 
> I think that'd be good.  The fact that it wasn't until several mails
> into the thread that anyone thought of the http.receivepack setting
> also suggests that its use is a bit un-intuitive (even though it
> probably makes perfect sense and is a good solution).

Yeah, I did not even think of http.receivepack because I have never had to set it before (it was turned on in the original tests that I built top of). I have the impression that the anonymous-read/authenticated-write setup you are using has not been all that commonly used. The example in the manpage dates back to 2009, but it was only in 2012 that we got a bug report that the client-side authentication handler has problems with it.

Show 8 quoted lines
> > So _if_ you fixed it by setting http.receivepack (which I think is the
> > simplest thing under Apache, since matching the query string there is
> > hard), then you would need a version of git with that fix on the
> > client side to actually have git prompt for the password correctly.
> 
> Ah, so *that* is the fix that has been mentioned (I haven't bothered
> reading it myself), or are there in fact two fixes that have been
> referred to in the thread?

No, there's only the one fix in git itself (not counting improving the documentation just now). With the Apache config given in the manual, clients older than git v1.7.11.7 will not properly handle the 401 response they get mid-way through the push process.

But you do not have to worry about that with your configuration, as you provide the 401 up-front.

Show 7 quoted lines
> > But your fix under lighttpd is much better, as it asks for the
> > credentials up front (which means the client does not go to any work
> > creating a packfile just to find out that it does not have access).
> 
> Yes, I think it also helps with my particular scenario where new repos
> will be added from time to time.  This way there is no second step,
> after `git init`, that must be remembered.

Yeah, avoiding setting http.receivepack at all is helpful. Though note that you can also set it in /etc/gitconfig for the whole system at once.

> Thank you very much for taking the time to help me out with this!
> I'll also take a look at the patches you sent, as a dumb simpler user
> I might have something to add, who knows?

You're welcome. I'm glad we got it resolved, and looking over the documentation patch is appreciated.

-Peff
Previous: Magnus TherningNext: Magnus Therning
Message 21 of 23 in “git-http-backend: anonymous read, authenticated write”
  1. Magnus TherningApr 9, 2013
  2. Jakub NarębskiApr 9, 2013
  3. Magnus TherningApr 10, 2013
  4. Jeff KingApr 9, 2013
  5. Magnus TherningApr 10, 2013
  6. Jeff KingApr 10, 2013
  7. Jakub NarębskiApr 10, 2013
  8. Jeff KingApr 10, 2013
  9. Magnus TherningApr 10, 2013
  10. Jeff KingApr 11, 2013
  11. 0/2 http-backend documentation examplesJeff King, Apr 11, 2013
  12. 1/2 doc/http-backend: clarify "half-auth" repo configurationJeff King, Apr 11, 2013
  13. Magnus TherningApr 11, 2013
  14. 2/2 doc/http-backend: give some lighttpd config examplesJeff King, Apr 11, 2013
  15. Jakub NarębskiApr 11, 2013
  16. Jeff KingApr 11, 2013
  17. Jakub NarębskiApr 11, 2013
  18. 3/2 doc/http-backend: match query-string in apache half-auth exampleJeff King, Apr 13, 2013
  19. Jakub NarębskiApr 13, 2013
  20. Magnus TherningApr 11, 2013
  21. Jeff KingApr 11, 2013
  22. Magnus TherningApr 12, 2013
  23. Jakub NarębskiApr 11, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.