blob: 6ae2a41fa5fda9aa5f1c54d2f14492b874817d7b [file] [log] [blame]
Junio C Hamano3b70d3c2009-11-21 17:37:371<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Junio C Hamano103b5722011-01-31 05:03:456<meta name="generator" content="AsciiDoc 8.4.5" />
7<title>git-http-backend(1)</title>
Junio C Hamano3b70d3c2009-11-21 17:37:378<style type="text/css">
9/* Debug borders */
10p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11/*
12 border: 1px solid red;
13*/
14}
15
16body {
17 margin: 1em 5% 1em 5%;
18}
19
20a {
21 color: blue;
22 text-decoration: underline;
23}
24a:visited {
25 color: fuchsia;
26}
27
28em {
29 font-style: italic;
Junio C Hamano103b5722011-01-31 05:03:4530 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:3731}
32
33strong {
34 font-weight: bold;
Junio C Hamano103b5722011-01-31 05:03:4535 color: #083194;
Junio C Hamano3b70d3c2009-11-21 17:37:3736}
37
38tt {
39 color: navy;
40}
41
42h1, h2, h3, h4, h5, h6 {
43 color: #527bbd;
44 font-family: sans-serif;
45 margin-top: 1.2em;
46 margin-bottom: 0.5em;
47 line-height: 1.3;
48}
49
50h1, h2, h3 {
51 border-bottom: 2px solid silver;
52}
53h2 {
54 padding-top: 0.5em;
55}
56h3 {
57 float: left;
58}
59h3 + * {
60 clear: left;
61}
62
63div.sectionbody {
64 font-family: serif;
65 margin-left: 0;
66}
67
68hr {
69 border: 1px solid silver;
70}
71
72p {
73 margin-top: 0.5em;
74 margin-bottom: 0.5em;
75}
76
Junio C Hamano103b5722011-01-31 05:03:4577ul, ol, li > p {
78 margin-top: 0;
79}
80
Junio C Hamano3b70d3c2009-11-21 17:37:3781pre {
82 padding: 0;
83 margin: 0;
84}
85
86span#author {
87 color: #527bbd;
88 font-family: sans-serif;
89 font-weight: bold;
90 font-size: 1.1em;
91}
92span#email {
93}
Junio C Hamano103b5722011-01-31 05:03:4594span#revnumber, span#revdate, span#revremark {
Junio C Hamano3b70d3c2009-11-21 17:37:3795 font-family: sans-serif;
96}
97
98div#footer {
99 font-family: sans-serif;
100 font-size: small;
101 border-top: 2px solid silver;
102 padding-top: 0.5em;
103 margin-top: 4.0em;
104}
105div#footer-text {
106 float: left;
107 padding-bottom: 0.5em;
108}
109div#footer-badges {
110 float: right;
111 padding-bottom: 0.5em;
112}
113
Junio C Hamano103b5722011-01-31 05:03:45114div#preamble {
115 margin-top: 1.5em;
116 margin-bottom: 1.5em;
117}
Junio C Hamano3b70d3c2009-11-21 17:37:37118div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
119div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
120div.admonitionblock {
Junio C Hamano3b70d3c2009-11-21 17:37:37121 margin-top: 1.5em;
122 margin-bottom: 1.5em;
123}
124div.admonitionblock {
125 margin-top: 2.5em;
126 margin-bottom: 2.5em;
127}
128
129div.content { /* Block element content. */
130 padding: 0;
131}
132
133/* Block element titles. */
134div.title, caption.title {
Junio C Hamano103b5722011-01-31 05:03:45135 color: #527bbd;
Junio C Hamano3b70d3c2009-11-21 17:37:37136 font-family: sans-serif;
137 font-weight: bold;
138 text-align: left;
139 margin-top: 1.0em;
140 margin-bottom: 0.5em;
141}
142div.title + * {
143 margin-top: 0;
144}
145
146td div.title:first-child {
147 margin-top: 0.0em;
148}
149div.content div.title:first-child {
150 margin-top: 0.0em;
151}
152div.content + div.title {
153 margin-top: 0.0em;
154}
155
156div.sidebarblock > div.content {
157 background: #ffffee;
158 border: 1px solid silver;
159 padding: 0.5em;
160}
161
Junio C Hamano3b70d3c2009-11-21 17:37:37162div.listingblock > div.content {
163 border: 1px solid silver;
164 background: #f4f4f4;
165 padding: 0.5em;
166}
167
Junio C Hamano103b5722011-01-31 05:03:45168div.quoteblock {
Junio C Hamano3b70d3c2009-11-21 17:37:37169 padding-left: 2.0em;
Junio C Hamano103b5722011-01-31 05:03:45170 margin-right: 10%;
Junio C Hamano3b70d3c2009-11-21 17:37:37171}
Junio C Hamano103b5722011-01-31 05:03:45172div.quoteblock > div.attribution {
173 padding-top: 0.5em;
Junio C Hamano3b70d3c2009-11-21 17:37:37174 text-align: right;
175}
Junio C Hamano103b5722011-01-31 05:03:45176
177div.verseblock {
178 padding-left: 2.0em;
179 margin-right: 10%;
180}
181div.verseblock > div.content {
182 white-space: pre;
183}
184div.verseblock > div.attribution {
185 padding-top: 0.75em;
186 text-align: left;
187}
188/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
Junio C Hamano3b70d3c2009-11-21 17:37:37189div.verseblock + div.attribution {
190 text-align: left;
191}
192
193div.admonitionblock .icon {
194 vertical-align: top;
195 font-size: 1.1em;
196 font-weight: bold;
197 text-decoration: underline;
198 color: #527bbd;
199 padding-right: 0.5em;
200}
201div.admonitionblock td.content {
202 padding-left: 0.5em;
203 border-left: 2px solid silver;
204}
205
206div.exampleblock > div.content {
207 border-left: 2px solid silver;
208 padding: 0.5em;
209}
210
Junio C Hamano3b70d3c2009-11-21 17:37:37211div.imageblock div.content { padding-left: 0; }
Junio C Hamano3b70d3c2009-11-21 17:37:37212span.image img { border-style: none; }
Junio C Hamano103b5722011-01-31 05:03:45213a.image:visited { color: white; }
Junio C Hamano3b70d3c2009-11-21 17:37:37214
215dl {
216 margin-top: 0.8em;
217 margin-bottom: 0.8em;
218}
219dt {
220 margin-top: 0.5em;
221 margin-bottom: 0;
Junio C Hamano103b5722011-01-31 05:03:45222 font-style: normal;
223 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:37224}
225dd > *:first-child {
Junio C Hamano103b5722011-01-31 05:03:45226 margin-top: 0.1em;
Junio C Hamano3b70d3c2009-11-21 17:37:37227}
228
229ul, ol {
230 list-style-position: outside;
231}
Junio C Hamano103b5722011-01-31 05:03:45232ol.arabic {
233 list-style-type: decimal;
234}
235ol.loweralpha {
Junio C Hamano3b70d3c2009-11-21 17:37:37236 list-style-type: lower-alpha;
237}
Junio C Hamano103b5722011-01-31 05:03:45238ol.upperalpha {
239 list-style-type: upper-alpha;
240}
241ol.lowerroman {
242 list-style-type: lower-roman;
243}
244ol.upperroman {
245 list-style-type: upper-roman;
246}
247
248div.compact ul, div.compact ol,
249div.compact p, div.compact p,
250div.compact div, div.compact div {
251 margin-top: 0.1em;
252 margin-bottom: 0.1em;
253}
Junio C Hamano3b70d3c2009-11-21 17:37:37254
255div.tableblock > table {
256 border: 3px solid #527bbd;
257}
258thead {
259 font-family: sans-serif;
260 font-weight: bold;
261}
262tfoot {
263 font-weight: bold;
264}
Junio C Hamano103b5722011-01-31 05:03:45265td > div.verse {
266 white-space: pre;
267}
268p.table {
269 margin-top: 0;
270}
271/* Because the table frame attribute is overriden by CSS in most browsers. */
272div.tableblock > table[frame="void"] {
273 border-style: none;
274}
275div.tableblock > table[frame="hsides"] {
276 border-left-style: none;
277 border-right-style: none;
278}
279div.tableblock > table[frame="vsides"] {
280 border-top-style: none;
281 border-bottom-style: none;
282}
Junio C Hamano3b70d3c2009-11-21 17:37:37283
Junio C Hamano103b5722011-01-31 05:03:45284
285div.hdlist {
Junio C Hamano3b70d3c2009-11-21 17:37:37286 margin-top: 0.8em;
287 margin-bottom: 0.8em;
288}
Junio C Hamano103b5722011-01-31 05:03:45289div.hdlist tr {
290 padding-bottom: 15px;
Junio C Hamano3b70d3c2009-11-21 17:37:37291}
Junio C Hamano103b5722011-01-31 05:03:45292dt.hdlist1.strong, td.hdlist1.strong {
293 font-weight: bold;
294}
295td.hdlist1 {
Junio C Hamano3b70d3c2009-11-21 17:37:37296 vertical-align: top;
Junio C Hamano103b5722011-01-31 05:03:45297 font-style: normal;
Junio C Hamano3b70d3c2009-11-21 17:37:37298 padding-right: 0.8em;
Junio C Hamano103b5722011-01-31 05:03:45299 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:37300}
Junio C Hamano103b5722011-01-31 05:03:45301td.hdlist2 {
Junio C Hamano3b70d3c2009-11-21 17:37:37302 vertical-align: top;
303}
Junio C Hamano103b5722011-01-31 05:03:45304div.hdlist.compact tr {
305 margin: 0;
306 padding-bottom: 0;
307}
308
309.comment {
310 background: yellow;
311}
Junio C Hamano3b70d3c2009-11-21 17:37:37312
313@media print {
314 div#footer-badges { display: none; }
315}
316
317div#toctitle {
318 color: #527bbd;
319 font-family: sans-serif;
320 font-size: 1.1em;
321 font-weight: bold;
322 margin-top: 1.0em;
323 margin-bottom: 0.1em;
324}
325
326div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
327 margin-top: 0;
328 margin-bottom: 0;
329}
330div.toclevel2 {
331 margin-left: 2em;
332 font-size: 0.9em;
333}
334div.toclevel3 {
335 margin-left: 4em;
336 font-size: 0.9em;
337}
338div.toclevel4 {
339 margin-left: 6em;
340 font-size: 0.9em;
341}
Junio C Hamano103b5722011-01-31 05:03:45342/* Overrides for manpage documents */
343h1 {
344 padding-top: 0.5em;
345 padding-bottom: 0.5em;
346 border-top: 2px solid silver;
347 border-bottom: 2px solid silver;
348}
349h2 {
350 border-style: none;
351}
352div.sectionbody {
353 margin-left: 5%;
354}
355
356@media print {
357 div#toc { display: none; }
358}
359
Junio C Hamano3b70d3c2009-11-21 17:37:37360/* Workarounds for IE6's broken and incomplete CSS2. */
361
362div.sidebar-content {
363 background: #ffffee;
364 border: 1px solid silver;
365 padding: 0.5em;
366}
367div.sidebar-title, div.image-title {
Junio C Hamano103b5722011-01-31 05:03:45368 color: #527bbd;
Junio C Hamano3b70d3c2009-11-21 17:37:37369 font-family: sans-serif;
370 font-weight: bold;
371 margin-top: 0.0em;
372 margin-bottom: 0.5em;
373}
374
375div.listingblock div.content {
376 border: 1px solid silver;
377 background: #f4f4f4;
378 padding: 0.5em;
379}
380
Junio C Hamano103b5722011-01-31 05:03:45381div.quoteblock-attribution {
382 padding-top: 0.5em;
383 text-align: right;
384}
385
386div.verseblock-content {
387 white-space: pre;
388}
389div.verseblock-attribution {
390 padding-top: 0.75em;
391 text-align: left;
Junio C Hamano3b70d3c2009-11-21 17:37:37392}
393
394div.exampleblock-content {
395 border-left: 2px solid silver;
396 padding-left: 0.5em;
397}
398
399/* IE6 sets dynamically generated links as visited. */
400div#toc a:visited { color: blue; }
401</style>
Junio C Hamano3b70d3c2009-11-21 17:37:37402</head>
403<body>
404<div id="header">
405<h1>
406git-http-backend(1) Manual Page
407</h1>
408<h2>NAME</h2>
409<div class="sectionbody">
410<p>git-http-backend -
411 Server side implementation of Git over HTTP
412</p>
413</div>
414</div>
Junio C Hamano103b5722011-01-31 05:03:45415<h2 id="_synopsis">SYNOPSIS</h2>
Junio C Hamano3b70d3c2009-11-21 17:37:37416<div class="sectionbody">
417<div class="verseblock">
Junio C Hamano103b5722011-01-31 05:03:45418<div class="verseblock-content"><em>git http-backend</em></div>
419<div class="verseblock-attribution">
420</div></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37421</div>
422<h2 id="_description">DESCRIPTION</h2>
423<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45424<div class="paragraph"><p>A simple CGI program to serve the contents of a Git repository to Git
Junio C Hamano3b70d3c2009-11-21 17:37:37425clients accessing the repository over http:// and https:// protocols.
Junio C Hamano167b1382010-01-31 23:04:31426The program supports clients fetching using both the smart HTTP protocol
Junio C Hamano3b70d3c2009-11-21 17:37:37427and the backwards-compatible dumb HTTP protocol, as well as clients
428pushing using the smart HTTP protocol.</p></div>
Junio C Hamano103b5722011-01-31 05:03:45429<div class="paragraph"><p>It verifies that the directory has the magic file
Junio C Hamano6ce6b6c2010-01-18 01:25:50430"git-daemon-export-ok", and it will refuse to export any git directory
Junio C Hamano103b5722011-01-31 05:03:45431that hasn&#8217;t explicitly been marked for export this way (unless the
Junio C Hamano6ce6b6c2010-01-18 01:25:50432GIT_HTTP_EXPORT_ALL environmental variable is set).</p></div>
Junio C Hamano103b5722011-01-31 05:03:45433<div class="paragraph"><p>By default, only the <tt>upload-pack</tt> service is enabled, which serves
Junio C Hamano1aa40d22010-01-21 17:46:43434<em>git fetch-pack</em> and <em>git ls-remote</em> clients, which are invoked from
435<em>git fetch</em>, <em>git pull</em>, and <em>git clone</em>. If the client is authenticated,
436the <tt>receive-pack</tt> service is enabled, which serves <em>git send-pack</em>
437clients, which is invoked from <em>git push</em>.</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37438</div>
439<h2 id="_services">SERVICES</h2>
440<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45441<div class="paragraph"><p>These services can be enabled/disabled using the per-repository
Junio C Hamano3b70d3c2009-11-21 17:37:37442configuration file:</p></div>
Junio C Hamano103b5722011-01-31 05:03:45443<div class="dlist"><dl>
444<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37445http.getanyfile
446</dt>
447<dd>
448<p>
Junio C Hamano1f630d52010-04-01 04:49:25449 This serves Git clients older than version 1.6.6 that are unable to use the
Junio C Hamano3b70d3c2009-11-21 17:37:37450 upload pack service. When enabled, clients are able to read
451 any file within the repository, including objects that are
452 no longer reachable from a branch but are still present.
453 It is enabled by default, but a repository can disable it
454 by setting this configuration item to <tt>false</tt>.
455</p>
456</dd>
Junio C Hamano103b5722011-01-31 05:03:45457<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37458http.uploadpack
459</dt>
460<dd>
461<p>
Junio C Hamano1aa40d22010-01-21 17:46:43462 This serves <em>git fetch-pack</em> and <em>git ls-remote</em> clients.
Junio C Hamano3b70d3c2009-11-21 17:37:37463 It is enabled by default, but a repository can disable it
464 by setting this configuration item to <tt>false</tt>.
465</p>
466</dd>
Junio C Hamano103b5722011-01-31 05:03:45467<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37468http.receivepack
469</dt>
470<dd>
471<p>
Junio C Hamano1aa40d22010-01-21 17:46:43472 This serves <em>git send-pack</em> clients, allowing push. It is
Junio C Hamano3b70d3c2009-11-21 17:37:37473 disabled by default for anonymous users, and enabled by
474 default for users authenticated by the web server. It can be
475 disabled by setting this item to <tt>false</tt>, or enabled for all
476 users, including anonymous users, by setting it to <tt>true</tt>.
477</p>
478</dd>
479</dl></div>
480</div>
481<h2 id="_url_translation">URL TRANSLATION</h2>
482<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45483<div class="paragraph"><p>To determine the location of the repository on disk, <em>git http-backend</em>
Junio C Hamano3b70d3c2009-11-21 17:37:37484concatenates the environment variables PATH_INFO, which is set
485automatically by the web server, and GIT_PROJECT_ROOT, which must be set
486manually in the web server configuration. If GIT_PROJECT_ROOT is not
Junio C Hamano1aa40d22010-01-21 17:46:43487set, <em>git http-backend</em> reads PATH_TRANSLATED, which is also set
Junio C Hamano3b70d3c2009-11-21 17:37:37488automatically by the web server.</p></div>
489</div>
490<h2 id="_examples">EXAMPLES</h2>
491<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45492<div class="paragraph"><p>All of the following examples map <em>http://$hostname/git/foo/bar.git</em>
Junio C Hamano3b70d3c2009-11-21 17:37:37493to <em>/var/www/git/foo/bar.git</em>.</p></div>
Junio C Hamano103b5722011-01-31 05:03:45494<div class="dlist"><dl>
495<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37496Apache 2.x
497</dt>
498<dd>
499<p>
500 Ensure mod_cgi, mod_alias, and mod_env are enabled, set
501 GIT_PROJECT_ROOT (or DocumentRoot) appropriately, and
502 create a ScriptAlias to the CGI:
503</p>
504<div class="listingblock">
505<div class="content">
506<pre><tt>SetEnv GIT_PROJECT_ROOT /var/www/git
Junio C Hamano6ce6b6c2010-01-18 01:25:50507SetEnv GIT_HTTP_EXPORT_ALL
Junio C Hamano3b70d3c2009-11-21 17:37:37508ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</tt></pre>
509</div></div>
Junio C Hamano103b5722011-01-31 05:03:45510<div class="paragraph"><p>To enable anonymous read access but authenticated write access,
Junio C Hamano3b70d3c2009-11-21 17:37:37511require authorization with a LocationMatch directive:</p></div>
512<div class="listingblock">
513<div class="content">
514<pre><tt>&lt;LocationMatch "^/git/.*/git-receive-pack$"&gt;
515 AuthType Basic
516 AuthName "Git Access"
517 Require group committers
518 ...
519&lt;/LocationMatch&gt;</tt></pre>
520</div></div>
Junio C Hamano103b5722011-01-31 05:03:45521<div class="paragraph"><p>To require authentication for both reads and writes, use a Location
Junio C Hamano3b70d3c2009-11-21 17:37:37522directive around the repository, or one of its parent directories:</p></div>
523<div class="listingblock">
524<div class="content">
525<pre><tt>&lt;Location /git/private&gt;
526 AuthType Basic
527 AuthName "Private Git Access"
528 Require group committers
529 ...
530&lt;/Location&gt;</tt></pre>
531</div></div>
Junio C Hamano103b5722011-01-31 05:03:45532<div class="paragraph"><p>To serve gitweb at the same url, use a ScriptAliasMatch to only
Junio C Hamano1aa40d22010-01-21 17:46:43533those URLs that <em>git http-backend</em> can handle, and forward the
Junio C Hamano3b70d3c2009-11-21 17:37:37534rest to gitweb:</p></div>
535<div class="listingblock">
536<div class="content">
537<pre><tt>ScriptAliasMatch \
538 "(?x)^/git/(.*/(HEAD | \
539 info/refs | \
540 objects/(info/[^/]+ | \
541 [0-9a-f]{2}/[0-9a-f]{38} | \
542 pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
543 git-(upload|receive)-pack))$" \
544 /usr/libexec/git-core/git-http-backend/$1
545
546ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</tt></pre>
547</div></div>
Junio C Hamanof7279012011-08-18 06:13:13548<div class="paragraph"><p>To serve multiple repositories from different <a href="gitnamespaces.html">gitnamespaces(7)</a> in a
549single repository:</p></div>
550<div class="listingblock">
551<div class="content">
552<pre><tt>SetEnvIf Request_URI "^/git/([^/]*)" GIT_NAMESPACE=$1
553ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.git$1</tt></pre>
554</div></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37555</dd>
Junio C Hamano103b5722011-01-31 05:03:45556<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37557Accelerated static Apache 2.x
558</dt>
559<dd>
560<p>
561 Similar to the above, but Apache can be used to return static
562 files that are stored on disk. On many systems this may
563 be more efficient as Apache can ask the kernel to copy the
564 file contents from the file system directly to the network:
565</p>
566<div class="listingblock">
567<div class="content">
568<pre><tt>SetEnv GIT_PROJECT_ROOT /var/www/git
569
570AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
571AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
572ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</tt></pre>
573</div></div>
Junio C Hamano103b5722011-01-31 05:03:45574<div class="paragraph"><p>This can be combined with the gitweb configuration:</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37575<div class="listingblock">
576<div class="content">
577<pre><tt>SetEnv GIT_PROJECT_ROOT /var/www/git
578
579AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
580AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
581ScriptAliasMatch \
582 "(?x)^/git/(.*/(HEAD | \
583 info/refs | \
584 objects/info/[^/]+ | \
585 git-(upload|receive)-pack))$" \
586 /usr/libexec/git-core/git-http-backend/$1
587ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</tt></pre>
588</div></div>
589</dd>
590</dl></div>
591</div>
592<h2 id="_environment">ENVIRONMENT</h2>
593<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45594<div class="paragraph"><p><em>git http-backend</em> relies upon the CGI environment variables set
Junio C Hamano3b70d3c2009-11-21 17:37:37595by the invoking web server, including:</p></div>
Junio C Hamano103b5722011-01-31 05:03:45596<div class="ulist"><ul>
Junio C Hamano3b70d3c2009-11-21 17:37:37597<li>
598<p>
599PATH_INFO (if GIT_PROJECT_ROOT is set, otherwise PATH_TRANSLATED)
600</p>
601</li>
602<li>
603<p>
604REMOTE_USER
605</p>
606</li>
607<li>
608<p>
609REMOTE_ADDR
610</p>
611</li>
612<li>
613<p>
614CONTENT_TYPE
615</p>
616</li>
617<li>
618<p>
619QUERY_STRING
620</p>
621</li>
622<li>
623<p>
624REQUEST_METHOD
625</p>
626</li>
627</ul></div>
Junio C Hamano103b5722011-01-31 05:03:45628<div class="paragraph"><p>The GIT_HTTP_EXPORT_ALL environmental variable may be passed to
Junio C Hamano6ce6b6c2010-01-18 01:25:50629<em>git-http-backend</em> to bypass the check for the "git-daemon-export-ok"
630file in each repository before allowing export of that repository.</p></div>
Junio C Hamano103b5722011-01-31 05:03:45631<div class="paragraph"><p>The backend process sets GIT_COMMITTER_NAME to <em>$REMOTE_USER</em> and
Junio C Hamano3b70d3c2009-11-21 17:37:37632GIT_COMMITTER_EMAIL to <em>${REMOTE_USER}@http.${REMOTE_ADDR}</em>,
633ensuring that any reflogs created by <em>git-receive-pack</em> contain some
634identifying information of the remote user who performed the push.</p></div>
Junio C Hamano103b5722011-01-31 05:03:45635<div class="paragraph"><p>All CGI environment variables are available to each of the hooks
Junio C Hamano3b70d3c2009-11-21 17:37:37636invoked by the <em>git-receive-pack</em>.</p></div>
637</div>
638<h2 id="_author">Author</h2>
639<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45640<div class="paragraph"><p>Written by Shawn O. Pearce &lt;<a href="mailto:spearce@spearce.org">spearce@spearce.org</a>&gt;.</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37641</div>
642<h2 id="_documentation">Documentation</h2>
643<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45644<div class="paragraph"><p>Documentation by Shawn O. Pearce &lt;<a href="mailto:spearce@spearce.org">spearce@spearce.org</a>&gt;.</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37645</div>
646<h2 id="_git">GIT</h2>
647<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45648<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37649</div>
650<div id="footer">
651<div id="footer-text">
Junio C Hamanof7279012011-08-18 06:13:13652Last updated 2011-08-18 06:09:28 UTC
Junio C Hamano3b70d3c2009-11-21 17:37:37653</div>
654</div>
655</body>
656</html>