blob: 4a68863b80477683866645b624b1e9a98e5ec1b9 [file] [log] [blame]
Junio C Hamano944ce252018-05-30 22:25:261<?xml version="1.0" encoding="UTF-8"?>
Junio C Hamano3b70d3c2009-11-21 17:37:372<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
5<head>
Junio C Hamano9d971152012-12-19 00:43:116<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
Junio C Hamano944ce252018-05-30 22:25:267<meta name="generator" content="AsciiDoc 8.6.10" />
Junio C Hamano103b5722011-01-31 05:03:458<title>git-http-backend(1)</title>
Junio C Hamano3b70d3c2009-11-21 17:37:379<style type="text/css">
Junio C Hamano9d971152012-12-19 00:43:1110/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
11
12/* Default font. */
13body {
14 font-family: Georgia,serif;
15}
16
17/* Title font. */
18h1, h2, h3, h4, h5, h6,
19div.title, caption.title,
20thead, p.table.header,
21#toctitle,
22#author, #revnumber, #revdate, #revremark,
23#footer {
24 font-family: Arial,Helvetica,sans-serif;
Junio C Hamano3b70d3c2009-11-21 17:37:3725}
26
27body {
28 margin: 1em 5% 1em 5%;
29}
30
31a {
32 color: blue;
33 text-decoration: underline;
34}
35a:visited {
36 color: fuchsia;
37}
38
39em {
40 font-style: italic;
Junio C Hamano103b5722011-01-31 05:03:4541 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:3742}
43
44strong {
45 font-weight: bold;
Junio C Hamano103b5722011-01-31 05:03:4546 color: #083194;
Junio C Hamano3b70d3c2009-11-21 17:37:3747}
48
Junio C Hamano3b70d3c2009-11-21 17:37:3749h1, h2, h3, h4, h5, h6 {
50 color: #527bbd;
Junio C Hamano3b70d3c2009-11-21 17:37:3751 margin-top: 1.2em;
52 margin-bottom: 0.5em;
53 line-height: 1.3;
54}
55
56h1, h2, h3 {
57 border-bottom: 2px solid silver;
58}
59h2 {
60 padding-top: 0.5em;
61}
62h3 {
63 float: left;
64}
65h3 + * {
66 clear: left;
67}
Junio C Hamano9d971152012-12-19 00:43:1168h5 {
69 font-size: 1.0em;
70}
Junio C Hamano3b70d3c2009-11-21 17:37:3771
72div.sectionbody {
Junio C Hamano3b70d3c2009-11-21 17:37:3773 margin-left: 0;
74}
75
76hr {
77 border: 1px solid silver;
78}
79
80p {
81 margin-top: 0.5em;
82 margin-bottom: 0.5em;
83}
84
Junio C Hamano103b5722011-01-31 05:03:4585ul, ol, li > p {
86 margin-top: 0;
87}
Junio C Hamano9d971152012-12-19 00:43:1188ul > li { color: #aaa; }
89ul > li > * { color: black; }
Junio C Hamano103b5722011-01-31 05:03:4590
Junio C Hamanoc14e6ad2014-10-31 20:25:5391.monospaced, code, pre {
92 font-family: "Courier New", Courier, monospace;
93 font-size: inherit;
94 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:3795 padding: 0;
96 margin: 0;
97}
Junio C Hamanoc14e6ad2014-10-31 20:25:5398pre {
99 white-space: pre-wrap;
100}
Junio C Hamano3b70d3c2009-11-21 17:37:37101
Junio C Hamano9d971152012-12-19 00:43:11102#author {
Junio C Hamano3b70d3c2009-11-21 17:37:37103 color: #527bbd;
Junio C Hamano3b70d3c2009-11-21 17:37:37104 font-weight: bold;
105 font-size: 1.1em;
106}
Junio C Hamano9d971152012-12-19 00:43:11107#email {
Junio C Hamano3b70d3c2009-11-21 17:37:37108}
Junio C Hamano9d971152012-12-19 00:43:11109#revnumber, #revdate, #revremark {
Junio C Hamano3b70d3c2009-11-21 17:37:37110}
111
Junio C Hamano9d971152012-12-19 00:43:11112#footer {
Junio C Hamano3b70d3c2009-11-21 17:37:37113 font-size: small;
114 border-top: 2px solid silver;
115 padding-top: 0.5em;
116 margin-top: 4.0em;
117}
Junio C Hamano9d971152012-12-19 00:43:11118#footer-text {
Junio C Hamano3b70d3c2009-11-21 17:37:37119 float: left;
120 padding-bottom: 0.5em;
121}
Junio C Hamano9d971152012-12-19 00:43:11122#footer-badges {
Junio C Hamano3b70d3c2009-11-21 17:37:37123 float: right;
124 padding-bottom: 0.5em;
125}
126
Junio C Hamano9d971152012-12-19 00:43:11127#preamble {
Junio C Hamano103b5722011-01-31 05:03:45128 margin-top: 1.5em;
129 margin-bottom: 1.5em;
130}
Junio C Hamano9d971152012-12-19 00:43:11131div.imageblock, div.exampleblock, div.verseblock,
Junio C Hamano3b70d3c2009-11-21 17:37:37132div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
133div.admonitionblock {
Junio C Hamano7bd050f2011-09-22 06:32:22134 margin-top: 1.0em;
Junio C Hamano3b70d3c2009-11-21 17:37:37135 margin-bottom: 1.5em;
136}
137div.admonitionblock {
Junio C Hamano7bd050f2011-09-22 06:32:22138 margin-top: 2.0em;
139 margin-bottom: 2.0em;
140 margin-right: 10%;
141 color: #606060;
Junio C Hamano3b70d3c2009-11-21 17:37:37142}
143
144div.content { /* Block element content. */
145 padding: 0;
146}
147
148/* Block element titles. */
149div.title, caption.title {
Junio C Hamano103b5722011-01-31 05:03:45150 color: #527bbd;
Junio C Hamano3b70d3c2009-11-21 17:37:37151 font-weight: bold;
152 text-align: left;
153 margin-top: 1.0em;
154 margin-bottom: 0.5em;
155}
156div.title + * {
157 margin-top: 0;
158}
159
160td div.title:first-child {
161 margin-top: 0.0em;
162}
163div.content div.title:first-child {
164 margin-top: 0.0em;
165}
166div.content + div.title {
167 margin-top: 0.0em;
168}
169
170div.sidebarblock > div.content {
171 background: #ffffee;
Junio C Hamano9d971152012-12-19 00:43:11172 border: 1px solid #dddddd;
173 border-left: 4px solid #f0f0f0;
Junio C Hamano3b70d3c2009-11-21 17:37:37174 padding: 0.5em;
175}
176
Junio C Hamano3b70d3c2009-11-21 17:37:37177div.listingblock > div.content {
Junio C Hamano9d971152012-12-19 00:43:11178 border: 1px solid #dddddd;
179 border-left: 5px solid #f0f0f0;
180 background: #f8f8f8;
Junio C Hamano3b70d3c2009-11-21 17:37:37181 padding: 0.5em;
182}
183
Junio C Hamano7bd050f2011-09-22 06:32:22184div.quoteblock, div.verseblock {
185 padding-left: 1.0em;
186 margin-left: 1.0em;
Junio C Hamano103b5722011-01-31 05:03:45187 margin-right: 10%;
Junio C Hamano9d971152012-12-19 00:43:11188 border-left: 5px solid #f0f0f0;
189 color: #888;
Junio C Hamano3b70d3c2009-11-21 17:37:37190}
Junio C Hamano7bd050f2011-09-22 06:32:22191
Junio C Hamano103b5722011-01-31 05:03:45192div.quoteblock > div.attribution {
193 padding-top: 0.5em;
Junio C Hamano3b70d3c2009-11-21 17:37:37194 text-align: right;
195}
Junio C Hamano103b5722011-01-31 05:03:45196
Junio C Hamano9d971152012-12-19 00:43:11197div.verseblock > pre.content {
198 font-family: inherit;
199 font-size: inherit;
Junio C Hamano103b5722011-01-31 05:03:45200}
201div.verseblock > div.attribution {
202 padding-top: 0.75em;
203 text-align: left;
204}
205/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
Junio C Hamano3b70d3c2009-11-21 17:37:37206div.verseblock + div.attribution {
207 text-align: left;
208}
209
210div.admonitionblock .icon {
211 vertical-align: top;
212 font-size: 1.1em;
213 font-weight: bold;
214 text-decoration: underline;
215 color: #527bbd;
216 padding-right: 0.5em;
217}
218div.admonitionblock td.content {
219 padding-left: 0.5em;
Junio C Hamano7bd050f2011-09-22 06:32:22220 border-left: 3px solid #dddddd;
Junio C Hamano3b70d3c2009-11-21 17:37:37221}
222
223div.exampleblock > div.content {
Junio C Hamano7bd050f2011-09-22 06:32:22224 border-left: 3px solid #dddddd;
225 padding-left: 0.5em;
Junio C Hamano3b70d3c2009-11-21 17:37:37226}
227
Junio C Hamano3b70d3c2009-11-21 17:37:37228div.imageblock div.content { padding-left: 0; }
Junio C Hamanoc14e6ad2014-10-31 20:25:53229span.image img { border-style: none; vertical-align: text-bottom; }
Junio C Hamano103b5722011-01-31 05:03:45230a.image:visited { color: white; }
Junio C Hamano3b70d3c2009-11-21 17:37:37231
232dl {
233 margin-top: 0.8em;
234 margin-bottom: 0.8em;
235}
236dt {
237 margin-top: 0.5em;
238 margin-bottom: 0;
Junio C Hamano103b5722011-01-31 05:03:45239 font-style: normal;
240 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:37241}
242dd > *:first-child {
Junio C Hamano103b5722011-01-31 05:03:45243 margin-top: 0.1em;
Junio C Hamano3b70d3c2009-11-21 17:37:37244}
245
246ul, ol {
247 list-style-position: outside;
248}
Junio C Hamano103b5722011-01-31 05:03:45249ol.arabic {
250 list-style-type: decimal;
251}
252ol.loweralpha {
Junio C Hamano3b70d3c2009-11-21 17:37:37253 list-style-type: lower-alpha;
254}
Junio C Hamano103b5722011-01-31 05:03:45255ol.upperalpha {
256 list-style-type: upper-alpha;
257}
258ol.lowerroman {
259 list-style-type: lower-roman;
260}
261ol.upperroman {
262 list-style-type: upper-roman;
263}
264
265div.compact ul, div.compact ol,
266div.compact p, div.compact p,
267div.compact div, div.compact div {
268 margin-top: 0.1em;
269 margin-bottom: 0.1em;
270}
Junio C Hamano3b70d3c2009-11-21 17:37:37271
Junio C Hamano3b70d3c2009-11-21 17:37:37272tfoot {
273 font-weight: bold;
274}
Junio C Hamano103b5722011-01-31 05:03:45275td > div.verse {
276 white-space: pre;
277}
Junio C Hamano103b5722011-01-31 05:03:45278
279div.hdlist {
Junio C Hamano3b70d3c2009-11-21 17:37:37280 margin-top: 0.8em;
281 margin-bottom: 0.8em;
282}
Junio C Hamano103b5722011-01-31 05:03:45283div.hdlist tr {
284 padding-bottom: 15px;
Junio C Hamano3b70d3c2009-11-21 17:37:37285}
Junio C Hamano103b5722011-01-31 05:03:45286dt.hdlist1.strong, td.hdlist1.strong {
287 font-weight: bold;
288}
289td.hdlist1 {
Junio C Hamano3b70d3c2009-11-21 17:37:37290 vertical-align: top;
Junio C Hamano103b5722011-01-31 05:03:45291 font-style: normal;
Junio C Hamano3b70d3c2009-11-21 17:37:37292 padding-right: 0.8em;
Junio C Hamano103b5722011-01-31 05:03:45293 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:37294}
Junio C Hamano103b5722011-01-31 05:03:45295td.hdlist2 {
Junio C Hamano3b70d3c2009-11-21 17:37:37296 vertical-align: top;
297}
Junio C Hamano103b5722011-01-31 05:03:45298div.hdlist.compact tr {
299 margin: 0;
300 padding-bottom: 0;
301}
302
303.comment {
304 background: yellow;
305}
Junio C Hamano3b70d3c2009-11-21 17:37:37306
Junio C Hamano7bd050f2011-09-22 06:32:22307.footnote, .footnoteref {
308 font-size: 0.8em;
309}
310
311span.footnote, span.footnoteref {
312 vertical-align: super;
313}
314
315#footnotes {
316 margin: 20px 0 20px 0;
317 padding: 7px 0 0 0;
318}
319
320#footnotes div.footnote {
321 margin: 0 0 5px 0;
322}
323
324#footnotes hr {
325 border: none;
326 border-top: 1px solid silver;
327 height: 1px;
328 text-align: left;
329 margin-left: 0;
330 width: 20%;
331 min-width: 100px;
332}
333
Junio C Hamano9d971152012-12-19 00:43:11334div.colist td {
335 padding-right: 0.5em;
336 padding-bottom: 0.3em;
337 vertical-align: top;
338}
339div.colist td img {
340 margin-top: 0.3em;
Junio C Hamano3b70d3c2009-11-21 17:37:37341}
342
Junio C Hamano9d971152012-12-19 00:43:11343@media print {
344 #footer-badges { display: none; }
345}
346
347#toc {
Junio C Hamano7bd050f2011-09-22 06:32:22348 margin-bottom: 2.5em;
349}
350
Junio C Hamano9d971152012-12-19 00:43:11351#toctitle {
Junio C Hamano3b70d3c2009-11-21 17:37:37352 color: #527bbd;
Junio C Hamano3b70d3c2009-11-21 17:37:37353 font-size: 1.1em;
354 font-weight: bold;
355 margin-top: 1.0em;
356 margin-bottom: 0.1em;
357}
358
Junio C Hamanoc14e6ad2014-10-31 20:25:53359div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
Junio C Hamano3b70d3c2009-11-21 17:37:37360 margin-top: 0;
361 margin-bottom: 0;
362}
363div.toclevel2 {
364 margin-left: 2em;
365 font-size: 0.9em;
366}
367div.toclevel3 {
368 margin-left: 4em;
369 font-size: 0.9em;
370}
371div.toclevel4 {
372 margin-left: 6em;
373 font-size: 0.9em;
374}
Junio C Hamano9d971152012-12-19 00:43:11375
376span.aqua { color: aqua; }
377span.black { color: black; }
378span.blue { color: blue; }
379span.fuchsia { color: fuchsia; }
380span.gray { color: gray; }
381span.green { color: green; }
382span.lime { color: lime; }
383span.maroon { color: maroon; }
384span.navy { color: navy; }
385span.olive { color: olive; }
386span.purple { color: purple; }
387span.red { color: red; }
388span.silver { color: silver; }
389span.teal { color: teal; }
390span.white { color: white; }
391span.yellow { color: yellow; }
392
393span.aqua-background { background: aqua; }
394span.black-background { background: black; }
395span.blue-background { background: blue; }
396span.fuchsia-background { background: fuchsia; }
397span.gray-background { background: gray; }
398span.green-background { background: green; }
399span.lime-background { background: lime; }
400span.maroon-background { background: maroon; }
401span.navy-background { background: navy; }
402span.olive-background { background: olive; }
403span.purple-background { background: purple; }
404span.red-background { background: red; }
405span.silver-background { background: silver; }
406span.teal-background { background: teal; }
407span.white-background { background: white; }
408span.yellow-background { background: yellow; }
409
410span.big { font-size: 2em; }
411span.small { font-size: 0.6em; }
412
413span.underline { text-decoration: underline; }
414span.overline { text-decoration: overline; }
415span.line-through { text-decoration: line-through; }
416
Junio C Hamanoc14e6ad2014-10-31 20:25:53417div.unbreakable { page-break-inside: avoid; }
418
Junio C Hamano9d971152012-12-19 00:43:11419
420/*
421 * xhtml11 specific
422 *
423 * */
424
425div.tableblock {
426 margin-top: 1.0em;
427 margin-bottom: 1.5em;
428}
429div.tableblock > table {
430 border: 3px solid #527bbd;
431}
432thead, p.table.header {
433 font-weight: bold;
434 color: #527bbd;
435}
436p.table {
437 margin-top: 0;
438}
439/* Because the table frame attribute is overriden by CSS in most browsers. */
440div.tableblock > table[frame="void"] {
441 border-style: none;
442}
443div.tableblock > table[frame="hsides"] {
444 border-left-style: none;
445 border-right-style: none;
446}
447div.tableblock > table[frame="vsides"] {
448 border-top-style: none;
449 border-bottom-style: none;
450}
451
452
453/*
454 * html5 specific
455 *
456 * */
457
458table.tableblock {
459 margin-top: 1.0em;
460 margin-bottom: 1.5em;
461}
462thead, p.tableblock.header {
463 font-weight: bold;
464 color: #527bbd;
465}
466p.tableblock {
467 margin-top: 0;
468}
469table.tableblock {
470 border-width: 3px;
471 border-spacing: 0px;
472 border-style: solid;
473 border-color: #527bbd;
474 border-collapse: collapse;
475}
476th.tableblock, td.tableblock {
477 border-width: 1px;
478 padding: 4px;
479 border-style: solid;
480 border-color: #527bbd;
481}
482
483table.tableblock.frame-topbot {
484 border-left-style: hidden;
485 border-right-style: hidden;
486}
487table.tableblock.frame-sides {
488 border-top-style: hidden;
489 border-bottom-style: hidden;
490}
491table.tableblock.frame-none {
492 border-style: hidden;
493}
494
495th.tableblock.halign-left, td.tableblock.halign-left {
496 text-align: left;
497}
498th.tableblock.halign-center, td.tableblock.halign-center {
499 text-align: center;
500}
501th.tableblock.halign-right, td.tableblock.halign-right {
502 text-align: right;
503}
504
505th.tableblock.valign-top, td.tableblock.valign-top {
506 vertical-align: top;
507}
508th.tableblock.valign-middle, td.tableblock.valign-middle {
509 vertical-align: middle;
510}
511th.tableblock.valign-bottom, td.tableblock.valign-bottom {
512 vertical-align: bottom;
513}
514
515
516/*
517 * manpage specific
518 *
519 * */
520
521body.manpage h1 {
Junio C Hamano103b5722011-01-31 05:03:45522 padding-top: 0.5em;
523 padding-bottom: 0.5em;
524 border-top: 2px solid silver;
525 border-bottom: 2px solid silver;
526}
Junio C Hamano9d971152012-12-19 00:43:11527body.manpage h2 {
Junio C Hamano103b5722011-01-31 05:03:45528 border-style: none;
529}
Junio C Hamano9d971152012-12-19 00:43:11530body.manpage div.sectionbody {
531 margin-left: 3em;
Junio C Hamano103b5722011-01-31 05:03:45532}
533
534@media print {
Junio C Hamano9d971152012-12-19 00:43:11535 body.manpage div#toc { display: none; }
Junio C Hamano103b5722011-01-31 05:03:45536}
Junio C Hamanoc14e6ad2014-10-31 20:25:53537
538
Junio C Hamano3b70d3c2009-11-21 17:37:37539</style>
Junio C Hamano7bd050f2011-09-22 06:32:22540<script type="text/javascript">
541/*<![CDATA[*/
Junio C Hamano7bd050f2011-09-22 06:32:22542var asciidoc = { // Namespace.
543
544/////////////////////////////////////////////////////////////////////
545// Table Of Contents generator
546/////////////////////////////////////////////////////////////////////
547
548/* Author: Mihai Bazon, September 2002
549 * http://students.infoiasi.ro/~mishoo
550 *
551 * Table Of Content generator
552 * Version: 0.4
553 *
554 * Feel free to use this script under the terms of the GNU General Public
555 * License, as long as you do not remove or alter this notice.
556 */
557
558 /* modified by Troy D. Hanson, September 2006. License: GPL */
559 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
560
561// toclevels = 1..4.
562toc: function (toclevels) {
563
564 function getText(el) {
565 var text = "";
566 for (var i = el.firstChild; i != null; i = i.nextSibling) {
567 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
568 text += i.data;
569 else if (i.firstChild != null)
570 text += getText(i);
571 }
572 return text;
573 }
574
575 function TocEntry(el, text, toclevel) {
576 this.element = el;
577 this.text = text;
578 this.toclevel = toclevel;
579 }
580
581 function tocEntries(el, toclevels) {
582 var result = new Array;
Junio C Hamanoc14e6ad2014-10-31 20:25:53583 var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
Junio C Hamano7bd050f2011-09-22 06:32:22584 // Function that scans the DOM tree for header elements (the DOM2
585 // nodeIterator API would be a better technique but not supported by all
586 // browsers).
587 var iterate = function (el) {
588 for (var i = el.firstChild; i != null; i = i.nextSibling) {
589 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
590 var mo = re.exec(i.tagName);
591 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
592 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
593 }
594 iterate(i);
595 }
596 }
597 }
598 iterate(el);
599 return result;
600 }
601
602 var toc = document.getElementById("toc");
Junio C Hamano9d971152012-12-19 00:43:11603 if (!toc) {
604 return;
605 }
606
607 // Delete existing TOC entries in case we're reloading the TOC.
608 var tocEntriesToRemove = [];
609 var i;
610 for (i = 0; i < toc.childNodes.length; i++) {
611 var entry = toc.childNodes[i];
Junio C Hamanoc14e6ad2014-10-31 20:25:53612 if (entry.nodeName.toLowerCase() == 'div'
Junio C Hamano9d971152012-12-19 00:43:11613 && entry.getAttribute("class")
614 && entry.getAttribute("class").match(/^toclevel/))
615 tocEntriesToRemove.push(entry);
616 }
617 for (i = 0; i < tocEntriesToRemove.length; i++) {
618 toc.removeChild(tocEntriesToRemove[i]);
619 }
620
621 // Rebuild TOC entries.
Junio C Hamano7bd050f2011-09-22 06:32:22622 var entries = tocEntries(document.getElementById("content"), toclevels);
623 for (var i = 0; i < entries.length; ++i) {
624 var entry = entries[i];
625 if (entry.element.id == "")
626 entry.element.id = "_toc_" + i;
627 var a = document.createElement("a");
628 a.href = "#" + entry.element.id;
629 a.appendChild(document.createTextNode(entry.text));
630 var div = document.createElement("div");
631 div.appendChild(a);
632 div.className = "toclevel" + entry.toclevel;
633 toc.appendChild(div);
634 }
635 if (entries.length == 0)
636 toc.parentNode.removeChild(toc);
637},
638
639
640/////////////////////////////////////////////////////////////////////
641// Footnotes generator
642/////////////////////////////////////////////////////////////////////
643
644/* Based on footnote generation code from:
645 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
646 */
647
648footnotes: function () {
Junio C Hamano9d971152012-12-19 00:43:11649 // Delete existing footnote entries in case we're reloading the footnodes.
650 var i;
Junio C Hamano7bd050f2011-09-22 06:32:22651 var noteholder = document.getElementById("footnotes");
Junio C Hamano9d971152012-12-19 00:43:11652 if (!noteholder) {
653 return;
654 }
655 var entriesToRemove = [];
656 for (i = 0; i < noteholder.childNodes.length; i++) {
657 var entry = noteholder.childNodes[i];
Junio C Hamanoc14e6ad2014-10-31 20:25:53658 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
Junio C Hamano9d971152012-12-19 00:43:11659 entriesToRemove.push(entry);
660 }
661 for (i = 0; i < entriesToRemove.length; i++) {
662 noteholder.removeChild(entriesToRemove[i]);
663 }
664
665 // Rebuild footnote entries.
666 var cont = document.getElementById("content");
Junio C Hamano7bd050f2011-09-22 06:32:22667 var spans = cont.getElementsByTagName("span");
668 var refs = {};
669 var n = 0;
670 for (i=0; i<spans.length; i++) {
671 if (spans[i].className == "footnote") {
672 n++;
Junio C Hamano9d971152012-12-19 00:43:11673 var note = spans[i].getAttribute("data-note");
674 if (!note) {
675 // Use [\s\S] in place of . so multi-line matches work.
676 // Because JavaScript has no s (dotall) regex flag.
677 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
678 spans[i].innerHTML =
679 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
680 "' title='View footnote' class='footnote'>" + n + "</a>]";
681 spans[i].setAttribute("data-note", note);
682 }
Junio C Hamano7bd050f2011-09-22 06:32:22683 noteholder.innerHTML +=
684 "<div class='footnote' id='_footnote_" + n + "'>" +
685 "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
686 n + "</a>. " + note + "</div>";
Junio C Hamano7bd050f2011-09-22 06:32:22687 var id =spans[i].getAttribute("id");
688 if (id != null) refs["#"+id] = n;
689 }
690 }
691 if (n == 0)
692 noteholder.parentNode.removeChild(noteholder);
693 else {
694 // Process footnoterefs.
695 for (i=0; i<spans.length; i++) {
696 if (spans[i].className == "footnoteref") {
697 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
698 href = href.match(/#.*/)[0]; // Because IE return full URL.
699 n = refs[href];
700 spans[i].innerHTML =
701 "[<a href='#_footnote_" + n +
702 "' title='View footnote' class='footnote'>" + n + "</a>]";
703 }
704 }
705 }
Junio C Hamano9d971152012-12-19 00:43:11706},
707
708install: function(toclevels) {
709 var timerId;
710
711 function reinstall() {
712 asciidoc.footnotes();
713 if (toclevels) {
714 asciidoc.toc(toclevels);
715 }
716 }
717
718 function reinstallAndRemoveTimer() {
719 clearInterval(timerId);
720 reinstall();
721 }
722
723 timerId = setInterval(reinstall, 500);
724 if (document.addEventListener)
725 document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
726 else
727 window.onload = reinstallAndRemoveTimer;
Junio C Hamano7bd050f2011-09-22 06:32:22728}
729
730}
Junio C Hamano9d971152012-12-19 00:43:11731asciidoc.install();
Junio C Hamano7bd050f2011-09-22 06:32:22732/*]]>*/
733</script>
Junio C Hamano3b70d3c2009-11-21 17:37:37734</head>
Junio C Hamano9d971152012-12-19 00:43:11735<body class="manpage">
Junio C Hamano3b70d3c2009-11-21 17:37:37736<div id="header">
737<h1>
738git-http-backend(1) Manual Page
739</h1>
740<h2>NAME</h2>
741<div class="sectionbody">
742<p>git-http-backend -
743 Server side implementation of Git over HTTP
744</p>
745</div>
746</div>
Junio C Hamano7bd050f2011-09-22 06:32:22747<div id="content">
Junio C Hamano9d971152012-12-19 00:43:11748<div class="sect1">
Junio C Hamano103b5722011-01-31 05:03:45749<h2 id="_synopsis">SYNOPSIS</h2>
Junio C Hamano3b70d3c2009-11-21 17:37:37750<div class="sectionbody">
751<div class="verseblock">
Junio C Hamano9d971152012-12-19 00:43:11752<pre class="content"><em>git http-backend</em></pre>
753<div class="attribution">
Junio C Hamano103b5722011-01-31 05:03:45754</div></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37755</div>
Junio C Hamano9d971152012-12-19 00:43:11756</div>
757<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:37758<h2 id="_description">DESCRIPTION</h2>
759<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45760<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:37761clients accessing the repository over http:// and https:// protocols.
Junio C Hamano167b1382010-01-31 23:04:31762The program supports clients fetching using both the smart HTTP protocol
Junio C Hamano3b70d3c2009-11-21 17:37:37763and the backwards-compatible dumb HTTP protocol, as well as clients
764pushing using the smart HTTP protocol.</p></div>
Junio C Hamano103b5722011-01-31 05:03:45765<div class="paragraph"><p>It verifies that the directory has the magic file
Junio C Hamano076ffcc2013-02-06 05:13:21766"git-daemon-export-ok", and it will refuse to export any Git directory
Junio C Hamano103b5722011-01-31 05:03:45767that hasn&#8217;t explicitly been marked for export this way (unless the
Junio C Hamano042f2142016-06-27 18:05:05768<code>GIT_HTTP_EXPORT_ALL</code> environmental variable is set).</p></div>
Junio C Hamanoc14e6ad2014-10-31 20:25:53769<div class="paragraph"><p>By default, only the <code>upload-pack</code> service is enabled, which serves
Junio C Hamano1aa40d22010-01-21 17:46:43770<em>git fetch-pack</em> and <em>git ls-remote</em> clients, which are invoked from
771<em>git fetch</em>, <em>git pull</em>, and <em>git clone</em>. If the client is authenticated,
Junio C Hamanoc14e6ad2014-10-31 20:25:53772the <code>receive-pack</code> service is enabled, which serves <em>git send-pack</em>
Junio C Hamano1aa40d22010-01-21 17:46:43773clients, which is invoked from <em>git push</em>.</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37774</div>
Junio C Hamano9d971152012-12-19 00:43:11775</div>
776<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:37777<h2 id="_services">SERVICES</h2>
778<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45779<div class="paragraph"><p>These services can be enabled/disabled using the per-repository
Junio C Hamano3b70d3c2009-11-21 17:37:37780configuration file:</p></div>
Junio C Hamano103b5722011-01-31 05:03:45781<div class="dlist"><dl>
782<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37783http.getanyfile
784</dt>
785<dd>
786<p>
Junio C Hamano1f630d52010-04-01 04:49:25787 This serves Git clients older than version 1.6.6 that are unable to use the
Junio C Hamano3b70d3c2009-11-21 17:37:37788 upload pack service. When enabled, clients are able to read
789 any file within the repository, including objects that are
790 no longer reachable from a branch but are still present.
791 It is enabled by default, but a repository can disable it
Junio C Hamanoc14e6ad2014-10-31 20:25:53792 by setting this configuration item to <code>false</code>.
Junio C Hamano3b70d3c2009-11-21 17:37:37793</p>
794</dd>
Junio C Hamano103b5722011-01-31 05:03:45795<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37796http.uploadpack
797</dt>
798<dd>
799<p>
Junio C Hamano1aa40d22010-01-21 17:46:43800 This serves <em>git fetch-pack</em> and <em>git ls-remote</em> clients.
Junio C Hamano3b70d3c2009-11-21 17:37:37801 It is enabled by default, but a repository can disable it
Junio C Hamanoc14e6ad2014-10-31 20:25:53802 by setting this configuration item to <code>false</code>.
Junio C Hamano3b70d3c2009-11-21 17:37:37803</p>
804</dd>
Junio C Hamano103b5722011-01-31 05:03:45805<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37806http.receivepack
807</dt>
808<dd>
809<p>
Junio C Hamano1aa40d22010-01-21 17:46:43810 This serves <em>git send-pack</em> clients, allowing push. It is
Junio C Hamano3b70d3c2009-11-21 17:37:37811 disabled by default for anonymous users, and enabled by
812 default for users authenticated by the web server. It can be
Junio C Hamanoc14e6ad2014-10-31 20:25:53813 disabled by setting this item to <code>false</code>, or enabled for all
814 users, including anonymous users, by setting it to <code>true</code>.
Junio C Hamano3b70d3c2009-11-21 17:37:37815</p>
816</dd>
817</dl></div>
818</div>
Junio C Hamano9d971152012-12-19 00:43:11819</div>
820<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:37821<h2 id="_url_translation">URL TRANSLATION</h2>
822<div class="sectionbody">
Junio C Hamano103b5722011-01-31 05:03:45823<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:37824concatenates the environment variables PATH_INFO, which is set
825automatically by the web server, and GIT_PROJECT_ROOT, which must be set
826manually in the web server configuration. If GIT_PROJECT_ROOT is not
Junio C Hamano1aa40d22010-01-21 17:46:43827set, <em>git http-backend</em> reads PATH_TRANSLATED, which is also set
Junio C Hamano3b70d3c2009-11-21 17:37:37828automatically by the web server.</p></div>
829</div>
Junio C Hamano9d971152012-12-19 00:43:11830</div>
831<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:37832<h2 id="_examples">EXAMPLES</h2>
833<div class="sectionbody">
Junio C Hamano1dbca522015-05-22 20:48:55834<div class="paragraph"><p>All of the following examples map <code>http://$hostname/git/foo/bar.git</code>
835to <code>/var/www/git/foo/bar.git</code>.</p></div>
Junio C Hamano103b5722011-01-31 05:03:45836<div class="dlist"><dl>
837<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37838Apache 2.x
839</dt>
840<dd>
841<p>
842 Ensure mod_cgi, mod_alias, and mod_env are enabled, set
843 GIT_PROJECT_ROOT (or DocumentRoot) appropriately, and
844 create a ScriptAlias to the CGI:
845</p>
846<div class="listingblock">
847<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53848<pre><code>SetEnv GIT_PROJECT_ROOT /var/www/git
Junio C Hamano6ce6b6c2010-01-18 01:25:50849SetEnv GIT_HTTP_EXPORT_ALL
Junio C Hamanoc14e6ad2014-10-31 20:25:53850ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</code></pre>
Junio C Hamano3b70d3c2009-11-21 17:37:37851</div></div>
Junio C Hamano103b5722011-01-31 05:03:45852<div class="paragraph"><p>To enable anonymous read access but authenticated write access,
Junio C Hamanoe3f080d2013-04-22 02:27:13853require authorization for both the initial ref advertisement (which we
854detect as a push via the service parameter in the query string), and the
855receive-pack invocation itself:</p></div>
856<div class="listingblock">
857<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53858<pre><code>RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
Junio C Hamanoe3f080d2013-04-22 02:27:13859RewriteCond %{REQUEST_URI} /git-receive-pack$
860RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]
861
862&lt;LocationMatch "^/git/"&gt;
863 Order Deny,Allow
864 Deny from env=AUTHREQUIRED
865
866 AuthType Basic
867 AuthName "Git Access"
868 Require group committers
869 Satisfy Any
870 ...
Junio C Hamanoc14e6ad2014-10-31 20:25:53871&lt;/LocationMatch&gt;</code></pre>
Junio C Hamanoe3f080d2013-04-22 02:27:13872</div></div>
Junio C Hamanoc14e6ad2014-10-31 20:25:53873<div class="paragraph"><p>If you do not have <code>mod_rewrite</code> available to match against the query
874string, it is sufficient to just protect <code>git-receive-pack</code> itself,
Junio C Hamanoe3f080d2013-04-22 02:27:13875like:</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37876<div class="listingblock">
877<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53878<pre><code>&lt;LocationMatch "^/git/.*/git-receive-pack$"&gt;
Junio C Hamano3b70d3c2009-11-21 17:37:37879 AuthType Basic
880 AuthName "Git Access"
881 Require group committers
882 ...
Junio C Hamanoc14e6ad2014-10-31 20:25:53883&lt;/LocationMatch&gt;</code></pre>
Junio C Hamano3b70d3c2009-11-21 17:37:37884</div></div>
Junio C Hamanoe3f080d2013-04-22 02:27:13885<div class="paragraph"><p>In this mode, the server will not request authentication until the
886client actually starts the object negotiation phase of the push, rather
887than during the initial contact. For this reason, you must also enable
Junio C Hamanoc14e6ad2014-10-31 20:25:53888the <code>http.receivepack</code> config option in any repositories that should
889accept a push. The default behavior, if <code>http.receivepack</code> is not set,
Junio C Hamanoe3f080d2013-04-22 02:27:13890is to reject any pushes by unauthenticated users; the initial request
Junio C Hamanoc14e6ad2014-10-31 20:25:53891will therefore report <code>403 Forbidden</code> to the client, without even giving
Junio C Hamanoe3f080d2013-04-22 02:27:13892an opportunity for authentication.</p></div>
Junio C Hamano103b5722011-01-31 05:03:45893<div class="paragraph"><p>To require authentication for both reads and writes, use a Location
Junio C Hamano3b70d3c2009-11-21 17:37:37894directive around the repository, or one of its parent directories:</p></div>
895<div class="listingblock">
896<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53897<pre><code>&lt;Location /git/private&gt;
Junio C Hamano3b70d3c2009-11-21 17:37:37898 AuthType Basic
899 AuthName "Private Git Access"
900 Require group committers
901 ...
Junio C Hamanoc14e6ad2014-10-31 20:25:53902&lt;/Location&gt;</code></pre>
Junio C Hamano3b70d3c2009-11-21 17:37:37903</div></div>
Junio C Hamano103b5722011-01-31 05:03:45904<div class="paragraph"><p>To serve gitweb at the same url, use a ScriptAliasMatch to only
Junio C Hamano1aa40d22010-01-21 17:46:43905those URLs that <em>git http-backend</em> can handle, and forward the
Junio C Hamano3b70d3c2009-11-21 17:37:37906rest to gitweb:</p></div>
907<div class="listingblock">
908<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53909<pre><code>ScriptAliasMatch \
Junio C Hamano3b70d3c2009-11-21 17:37:37910 "(?x)^/git/(.*/(HEAD | \
911 info/refs | \
912 objects/(info/[^/]+ | \
913 [0-9a-f]{2}/[0-9a-f]{38} | \
914 pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
915 git-(upload|receive)-pack))$" \
916 /usr/libexec/git-core/git-http-backend/$1
917
Junio C Hamanoc14e6ad2014-10-31 20:25:53918ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</code></pre>
Junio C Hamano3b70d3c2009-11-21 17:37:37919</div></div>
Junio C Hamanoa28a9202012-06-21 07:08:23920<div class="paragraph"><p>To serve multiple repositories from different <a href="gitnamespaces.html">gitnamespaces(7)</a> in a
Junio C Hamanof7279012011-08-18 06:13:13921single repository:</p></div>
922<div class="listingblock">
923<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53924<pre><code>SetEnvIf Request_URI "^/git/([^/]*)" GIT_NAMESPACE=$1
925ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.git$1</code></pre>
Junio C Hamanof7279012011-08-18 06:13:13926</div></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37927</dd>
Junio C Hamano103b5722011-01-31 05:03:45928<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37929Accelerated static Apache 2.x
930</dt>
931<dd>
932<p>
933 Similar to the above, but Apache can be used to return static
934 files that are stored on disk. On many systems this may
935 be more efficient as Apache can ask the kernel to copy the
936 file contents from the file system directly to the network:
937</p>
938<div class="listingblock">
939<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53940<pre><code>SetEnv GIT_PROJECT_ROOT /var/www/git
Junio C Hamano3b70d3c2009-11-21 17:37:37941
942AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
943AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
Junio C Hamanoc14e6ad2014-10-31 20:25:53944ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</code></pre>
Junio C Hamano3b70d3c2009-11-21 17:37:37945</div></div>
Junio C Hamano103b5722011-01-31 05:03:45946<div class="paragraph"><p>This can be combined with the gitweb configuration:</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37947<div class="listingblock">
948<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53949<pre><code>SetEnv GIT_PROJECT_ROOT /var/www/git
Junio C Hamano3b70d3c2009-11-21 17:37:37950
951AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
952AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
953ScriptAliasMatch \
954 "(?x)^/git/(.*/(HEAD | \
955 info/refs | \
956 objects/info/[^/]+ | \
957 git-(upload|receive)-pack))$" \
958 /usr/libexec/git-core/git-http-backend/$1
Junio C Hamanoc14e6ad2014-10-31 20:25:53959ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</code></pre>
Junio C Hamano3b70d3c2009-11-21 17:37:37960</div></div>
961</dd>
Junio C Hamanoe3f080d2013-04-22 02:27:13962<dt class="hdlist1">
963Lighttpd
964</dt>
965<dd>
966<p>
Junio C Hamanoc14e6ad2014-10-31 20:25:53967 Ensure that <code>mod_cgi</code>, <code>mod_alias</code>, <code>mod_auth</code>, <code>mod_setenv</code> are
968 loaded, then set <code>GIT_PROJECT_ROOT</code> appropriately and redirect
Junio C Hamanoe3f080d2013-04-22 02:27:13969 all requests to the CGI:
970</p>
971<div class="listingblock">
972<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53973<pre><code>alias.url += ( "/git" =&gt; "/usr/lib/git-core/git-http-backend" )
Junio C Hamanoe3f080d2013-04-22 02:27:13974$HTTP["url"] =~ "^/git" {
975 cgi.assign = ("" =&gt; "")
976 setenv.add-environment = (
977 "GIT_PROJECT_ROOT" =&gt; "/var/www/git",
978 "GIT_HTTP_EXPORT_ALL" =&gt; ""
979 )
Junio C Hamanoc14e6ad2014-10-31 20:25:53980}</code></pre>
Junio C Hamanoe3f080d2013-04-22 02:27:13981</div></div>
982<div class="paragraph"><p>To enable anonymous read access but authenticated write access:</p></div>
983<div class="listingblock">
984<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53985<pre><code>$HTTP["querystring"] =~ "service=git-receive-pack" {
Junio C Hamanoe3f080d2013-04-22 02:27:13986 include "git-auth.conf"
987}
988$HTTP["url"] =~ "^/git/.*/git-receive-pack$" {
989 include "git-auth.conf"
Junio C Hamanoc14e6ad2014-10-31 20:25:53990}</code></pre>
Junio C Hamanoe3f080d2013-04-22 02:27:13991</div></div>
Junio C Hamanoc14e6ad2014-10-31 20:25:53992<div class="paragraph"><p>where <code>git-auth.conf</code> looks something like:</p></div>
Junio C Hamanoe3f080d2013-04-22 02:27:13993<div class="listingblock">
994<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53995<pre><code>auth.require = (
Junio C Hamanoe3f080d2013-04-22 02:27:13996 "/" =&gt; (
997 "method" =&gt; "basic",
998 "realm" =&gt; "Git Access",
999 "require" =&gt; "valid-user"
1000 )
1001)
Junio C Hamanoc14e6ad2014-10-31 20:25:531002# ...and set up auth.backend here</code></pre>
Junio C Hamanoe3f080d2013-04-22 02:27:131003</div></div>
1004<div class="paragraph"><p>To require authentication for both reads and writes:</p></div>
1005<div class="listingblock">
1006<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:531007<pre><code>$HTTP["url"] =~ "^/git/private" {
Junio C Hamanoe3f080d2013-04-22 02:27:131008 include "git-auth.conf"
Junio C Hamanoc14e6ad2014-10-31 20:25:531009}</code></pre>
Junio C Hamanoe3f080d2013-04-22 02:27:131010</div></div>
1011</dd>
Junio C Hamano3b70d3c2009-11-21 17:37:371012</dl></div>
1013</div>
Junio C Hamano9d971152012-12-19 00:43:111014</div>
1015<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:371016<h2 id="_environment">ENVIRONMENT</h2>
1017<div class="sectionbody">
Junio C Hamano042f2142016-06-27 18:05:051018<div class="paragraph"><p><em>git http-backend</em> relies upon the <code>CGI</code> environment variables set
Junio C Hamano3b70d3c2009-11-21 17:37:371019by the invoking web server, including:</p></div>
Junio C Hamano103b5722011-01-31 05:03:451020<div class="ulist"><ul>
Junio C Hamano3b70d3c2009-11-21 17:37:371021<li>
1022<p>
1023PATH_INFO (if GIT_PROJECT_ROOT is set, otherwise PATH_TRANSLATED)
1024</p>
1025</li>
1026<li>
1027<p>
1028REMOTE_USER
1029</p>
1030</li>
1031<li>
1032<p>
1033REMOTE_ADDR
1034</p>
1035</li>
1036<li>
1037<p>
1038CONTENT_TYPE
1039</p>
1040</li>
1041<li>
1042<p>
1043QUERY_STRING
1044</p>
1045</li>
1046<li>
1047<p>
1048REQUEST_METHOD
1049</p>
1050</li>
1051</ul></div>
Junio C Hamano042f2142016-06-27 18:05:051052<div class="paragraph"><p>The <code>GIT_HTTP_EXPORT_ALL</code> environmental variable may be passed to
Junio C Hamano6ce6b6c2010-01-18 01:25:501053<em>git-http-backend</em> to bypass the check for the "git-daemon-export-ok"
1054file in each repository before allowing export of that repository.</p></div>
Junio C Hamano85f1fde2015-06-01 20:37:321055<div class="paragraph"><p>The <code>GIT_HTTP_MAX_REQUEST_BUFFER</code> environment variable (or the
1056<code>http.maxRequestBuffer</code> config variable) may be set to change the
1057largest ref negotiation request that git will handle during a fetch; any
1058fetch requiring a larger buffer will not succeed. This value should not
1059normally need to be changed, but may be helpful if you are fetching from
1060a repository with an extremely large number of refs. The value can be
1061specified with a unit (e.g., <code>100M</code> for 100 megabytes). The default is
106210 megabytes.</p></div>
Junio C Hamano103b5722011-01-31 05:03:451063<div class="paragraph"><p>The backend process sets GIT_COMMITTER_NAME to <em>$REMOTE_USER</em> and
Junio C Hamano3b70d3c2009-11-21 17:37:371064GIT_COMMITTER_EMAIL to <em>${REMOTE_USER}@http.${REMOTE_ADDR}</em>,
1065ensuring that any reflogs created by <em>git-receive-pack</em> contain some
1066identifying information of the remote user who performed the push.</p></div>
Junio C Hamano042f2142016-06-27 18:05:051067<div class="paragraph"><p>All <code>CGI</code> environment variables are available to each of the hooks
Junio C Hamano3b70d3c2009-11-21 17:37:371068invoked by the <em>git-receive-pack</em>.</p></div>
1069</div>
Junio C Hamano9d971152012-12-19 00:43:111070</div>
1071<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:371072<h2 id="_git">GIT</h2>
1073<div class="sectionbody">
Junio C Hamanoa28a9202012-06-21 07:08:231074<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:371075</div>
Junio C Hamano7bd050f2011-09-22 06:32:221076</div>
Junio C Hamano9d971152012-12-19 00:43:111077</div>
Junio C Hamano7bd050f2011-09-22 06:32:221078<div id="footnotes"><hr /></div>
Junio C Hamano3b70d3c2009-11-21 17:37:371079<div id="footer">
1080<div id="footer-text">
Junio C Hamano2ef0ba32018-01-26 23:13:531081Last updated
Junio C Hamano6b7d2152019-04-16 12:51:151082 2019-04-16 21:48:13 JST
Junio C Hamano3b70d3c2009-11-21 17:37:371083</div>
1084</div>
1085</body>
1086</html>