<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/git-http-backend.txt, branch v1.8.2.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v1.8.2.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v1.8.2.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2013-04-14T05:27:06Z</updated>
<entry>
<title>doc/http-backend: match query-string in apache half-auth example</title>
<updated>2013-04-14T05:27:06Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2013-04-13T03:33:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b0808819e5806f5ff01ffcc34db2796d180ad0d9'/>
<id>urn:sha1:b0808819e5806f5ff01ffcc34db2796d180ad0d9</id>
<content type='text'>
When setting up a "half-auth" repository in which reads can
be done anonymously but writes require authentication, it is
best if the server can require authentication for both the
ref advertisement and the actual receive-pack POSTs. This
alleviates the need for the admin to set http.receivepack in
the repositories, and means that the client is challenged
for credentials immediately, instead of partway through the
push process (and git clients older than v1.7.11.7 had
trouble handling these challenges).

Since detecting a push during the ref advertisement requires
matching the query string, and this is non-trivial to do in
Apache, we have traditionally punted and instructed users to
just protect "/git-receive-pack$".  This patch provides the
mod_rewrite recipe to actually match the ref advertisement,
which is preferred.

While we're at it, let's add the recipe to our test scripts
so that we can be sure that it works, and doesn't get broken
(either by our changes or by changes in Apache).

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Acked-by: Jakub Narębski &lt;jnareb@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>doc/http-backend: give some lighttpd config examples</title>
<updated>2013-04-11T14:33:21Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2013-04-11T03:36:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3813a33de5f9e8224eb2bd2ebae167b3bb00ef73'/>
<id>urn:sha1:3813a33de5f9e8224eb2bd2ebae167b3bb00ef73</id>
<content type='text'>
The examples in the documentation are all for Apache. Let's
at least cover the basics: an anonymous server, an
authenticated server, and a "half auth" server with
anonymous read and authenticated write.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>doc/http-backend: clarify "half-auth" repo configuration</title>
<updated>2013-04-11T14:33:07Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2013-04-11T03:32:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fdae191003381b1e2026422ffbd580ba39f1ab91'/>
<id>urn:sha1:fdae191003381b1e2026422ffbd580ba39f1ab91</id>
<content type='text'>
When the http-backend is set up to allow anonymous read but
authenticated write, the http-backend manual suggests
catching only the "/git-receive-pack" POST of the packfile,
not the initial "info/refs?service=git-receive-pack" GET in
which we advertise refs.

This does work and is secure, as we do not allow any write
during the info/refs request, and the information in the ref
advertisement is the same that you would get from a fetch.

However, the configuration required by the server is
slightly more complex. The default `http.receivepack`
setting is to allow pushes if the webserver tells us that
the user authenticated, and otherwise to return a 403
("Forbidden"). That works fine if authentication is turned
on completely; the initial request requires authentication,
and http-backend realizes it is OK to do a push.

But for this "half-auth" state, no authentication has
occurred during the initial ref advertisement. The
http-backend CGI therefore does not think that pushing
should be enabled, and responds with a 403. The client
cannot continue, even though the server would have allowed
it to run if it had provided credentials.

It would be much better if the server responded with a 401,
asking for credentials during the initial contact. But
git-http-backend does not know about the server's auth
configuration (so a 401 would be confusing in the case of a
true anonymous server). Unfortunately, configuring Apache to
recognize the query string and apply the auth appropriately
to receive-pack (but not upload-pack) initial requests is
non-trivial.

The site admin can work around this by just turning on
http.receivepack explicitly in its repositories. Let's
document this workaround.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Documentation: the name of the system is 'Git', not 'git'</title>
<updated>2013-02-01T21:53:33Z</updated>
<author>
<name>Thomas Ackermann</name>
<email>th.acker@arcor.de</email>
</author>
<published>2013-01-21T19:17:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2de9b71138171dca7279db3b3fe67e868c76d921'/>
<id>urn:sha1:2de9b71138171dca7279db3b3fe67e868c76d921</id>
<content type='text'>
Signed-off-by: Thomas Ackermann &lt;th.acker@arcor.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>ref namespaces: documentation</title>
<updated>2011-07-11T16:35:46Z</updated>
<author>
<name>Josh Triplett</name>
<email>josh@joshtriplett.org</email>
</author>
<published>2011-07-08T23:14:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d49483f0ca1be0994c4f20fe1804d36a28013676'/>
<id>urn:sha1:d49483f0ca1be0994c4f20fe1804d36a28013676</id>
<content type='text'>
Document the namespace mechanism in a new gitnamespaces(7) page.
Reference it from receive-pack and upload-pack.

Document the new --namespace option and GIT_NAMESPACE environment
variable in git(1), and reference gitnamespaces(7).

Add a sample Apache configuration to http-backend(1) to support
namespaced repositories, and reference gitnamespaces(7).

Signed-off-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
Signed-off-by: Jamey Sharp &lt;jamey@minilop.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Documentation: Clarify support for smart HTTP backend</title>
<updated>2010-03-30T23:49:19Z</updated>
<author>
<name>Greg Bacon</name>
<email>gbacon@dbresearch.net</email>
</author>
<published>2010-03-30T17:20:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=09f53b16bc65e14b116a275b3c569b2aa8040ad8'/>
<id>urn:sha1:09f53b16bc65e14b116a275b3c569b2aa8040ad8</id>
<content type='text'>
In the description of http.getanyfile, replace the vague "older Git
clients" with the earliest release whose client is able to use the
upload pack service.

Signed-off-by: Greg Bacon &lt;gbacon@dbresearch.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Fix typos in technical documentation.</title>
<updated>2010-01-31T18:24:53Z</updated>
<author>
<name>Ralf Wildenhues</name>
<email>Ralf.Wildenhues@gmx.de</email>
</author>
<published>2010-01-31T13:24:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6a5d0b0a90789ed92cb87f1b69cfeef2a1db3566'/>
<id>urn:sha1:6a5d0b0a90789ed92cb87f1b69cfeef2a1db3566</id>
<content type='text'>
Signed-off-by: Ralf Wildenhues &lt;Ralf.Wildenhues@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge remote branch 'remotes/trast-doc/for-next'</title>
<updated>2010-01-21T04:28:49Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-01-21T04:28:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=add0951ab0bee43b5f634d1be68a7a80f627c18f'/>
<id>urn:sha1:add0951ab0bee43b5f634d1be68a7a80f627c18f</id>
<content type='text'>
* remotes/trast-doc/for-next:
  Documentation: spell 'git cmd' without dash throughout
  Documentation: format full commands in typewriter font
  Documentation: warn prominently against merging with dirty trees
  Documentation/git-merge: reword references to "remote" and "pull"

Conflicts:
	Documentation/config.txt
	Documentation/git-config.txt
	Documentation/git-merge.txt
</content>
</entry>
<entry>
<title>Documentation: spell 'git cmd' without dash throughout</title>
<updated>2010-01-10T12:01:28Z</updated>
<author>
<name>Thomas Rast</name>
<email>trast@student.ethz.ch</email>
</author>
<published>2010-01-09T23:33:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0b444cdb19bcfcc7f59b7b00783cbfbbc5ddcf63'/>
<id>urn:sha1:0b444cdb19bcfcc7f59b7b00783cbfbbc5ddcf63</id>
<content type='text'>
The documentation was quite inconsistent when spelling 'git cmd' if it
only refers to the program, not to some specific invocation syntax:
both 'git-cmd' and 'git cmd' spellings exist.

The current trend goes towards dashless forms, and there is precedent
in 647ac70 (git-svn.txt: stop using dash-form of commands.,
2009-07-07) to actively eliminate the dashed variants.

Replace 'git-cmd' with 'git cmd' throughout, except where git-shell,
git-cvsserver, git-upload-pack, git-receive-pack, and
git-upload-archive are concerned, because those really live in the
$PATH.
</content>
</entry>
<entry>
<title>Smart-http: check if repository is OK to export before serving it</title>
<updated>2010-01-06T09:16:50Z</updated>
<author>
<name>Tarmigan Casebolt</name>
<email>tarmigan+git@gmail.com</email>
</author>
<published>2009-12-28T21:49:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8b2bd7cdacf71260dbc954316af2bed8e076c182'/>
<id>urn:sha1:8b2bd7cdacf71260dbc954316af2bed8e076c182</id>
<content type='text'>
Similar to how git-daemon checks whether a repository is OK to be
exported, smart-http should also check.  This check can be satisfied
in two different ways: the environmental variable GIT_HTTP_EXPORT_ALL
may be set to export all repositories, or the individual repository
may have the file git-daemon-export-ok.

Acked-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
Signed-off-by: Tarmigan Casebolt &lt;tarmigan+git@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
