blob: d7946704d832ffb04c07a4637aa8d6ed06545367 [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231<!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>
Junio C Hamano9d971152012-12-19 00:43:115<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
Junio C Hamanoac12f0e2014-09-19 22:32:516<meta name="generator" content="AsciiDoc 8.6.9" />
Junio C Hamano68cf15a2010-11-06 01:01:597<title>git-update-index(1)</title>
Junio C Hamano1a4e8412005-12-27 08:17:238<style type="text/css">
Junio C Hamano9d971152012-12-19 00:43:119/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
10
11/* Default font. */
12body {
13 font-family: Georgia,serif;
14}
15
16/* Title font. */
17h1, h2, h3, h4, h5, h6,
18div.title, caption.title,
19thead, p.table.header,
20#toctitle,
21#author, #revnumber, #revdate, #revremark,
22#footer {
23 font-family: Arial,Helvetica,sans-serif;
Junio C Hamano1a4e8412005-12-27 08:17:2324}
25
26body {
27 margin: 1em 5% 1em 5%;
28}
29
Junio C Hamanoba4b9282008-07-06 05:20:3130a {
31 color: blue;
32 text-decoration: underline;
33}
34a:visited {
35 color: fuchsia;
36}
Junio C Hamano1a4e8412005-12-27 08:17:2337
38em {
39 font-style: italic;
Junio C Hamano68cf15a2010-11-06 01:01:5940 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:2341}
42
43strong {
44 font-weight: bold;
Junio C Hamano68cf15a2010-11-06 01:01:5945 color: #083194;
Junio C Hamano1a4e8412005-12-27 08:17:2346}
47
Junio C Hamano1a4e8412005-12-27 08:17:2348h1, h2, h3, h4, h5, h6 {
49 color: #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:2350 margin-top: 1.2em;
51 margin-bottom: 0.5em;
52 line-height: 1.3;
53}
54
Junio C Hamanoba4b9282008-07-06 05:20:3155h1, h2, h3 {
Junio C Hamano1a4e8412005-12-27 08:17:2356 border-bottom: 2px solid silver;
57}
58h2 {
Junio C Hamano1a4e8412005-12-27 08:17:2359 padding-top: 0.5em;
60}
Junio C Hamanoba4b9282008-07-06 05:20:3161h3 {
62 float: left;
63}
64h3 + * {
65 clear: left;
66}
Junio C Hamano9d971152012-12-19 00:43:1167h5 {
68 font-size: 1.0em;
69}
Junio C Hamano1a4e8412005-12-27 08:17:2370
71div.sectionbody {
Junio C Hamano1a4e8412005-12-27 08:17:2372 margin-left: 0;
73}
74
75hr {
76 border: 1px solid silver;
77}
78
79p {
80 margin-top: 0.5em;
81 margin-bottom: 0.5em;
82}
83
Junio C Hamano68cf15a2010-11-06 01:01:5984ul, ol, li > p {
85 margin-top: 0;
86}
Junio C Hamano9d971152012-12-19 00:43:1187ul > li { color: #aaa; }
88ul > li > * { color: black; }
Junio C Hamano68cf15a2010-11-06 01:01:5989
Junio C Hamanoac12f0e2014-09-19 22:32:5190.monospaced, code, pre {
91 font-family: "Courier New", Courier, monospace;
92 font-size: inherit;
93 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:2394 padding: 0;
95 margin: 0;
96}
Junio C Hamanoac12f0e2014-09-19 22:32:5197pre {
98 white-space: pre-wrap;
99}
Junio C Hamano1a4e8412005-12-27 08:17:23100
Junio C Hamano9d971152012-12-19 00:43:11101#author {
Junio C Hamano1a4e8412005-12-27 08:17:23102 color: #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23103 font-weight: bold;
Junio C Hamanoba4b9282008-07-06 05:20:31104 font-size: 1.1em;
Junio C Hamano1a4e8412005-12-27 08:17:23105}
Junio C Hamano9d971152012-12-19 00:43:11106#email {
Junio C Hamano1a4e8412005-12-27 08:17:23107}
Junio C Hamano9d971152012-12-19 00:43:11108#revnumber, #revdate, #revremark {
Junio C Hamano1a4e8412005-12-27 08:17:23109}
110
Junio C Hamano9d971152012-12-19 00:43:11111#footer {
Junio C Hamano1a4e8412005-12-27 08:17:23112 font-size: small;
113 border-top: 2px solid silver;
114 padding-top: 0.5em;
115 margin-top: 4.0em;
116}
Junio C Hamano9d971152012-12-19 00:43:11117#footer-text {
Junio C Hamano1a4e8412005-12-27 08:17:23118 float: left;
119 padding-bottom: 0.5em;
120}
Junio C Hamano9d971152012-12-19 00:43:11121#footer-badges {
Junio C Hamano1a4e8412005-12-27 08:17:23122 float: right;
123 padding-bottom: 0.5em;
124}
125
Junio C Hamano9d971152012-12-19 00:43:11126#preamble {
Junio C Hamano68cf15a2010-11-06 01:01:59127 margin-top: 1.5em;
128 margin-bottom: 1.5em;
129}
Junio C Hamano9d971152012-12-19 00:43:11130div.imageblock, div.exampleblock, div.verseblock,
Junio C Hamano1a4e8412005-12-27 08:17:23131div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
132div.admonitionblock {
Junio C Hamano7bd050f2011-09-22 06:32:22133 margin-top: 1.0em;
Junio C Hamano1a4e8412005-12-27 08:17:23134 margin-bottom: 1.5em;
135}
136div.admonitionblock {
Junio C Hamano7bd050f2011-09-22 06:32:22137 margin-top: 2.0em;
138 margin-bottom: 2.0em;
139 margin-right: 10%;
140 color: #606060;
Junio C Hamano1a4e8412005-12-27 08:17:23141}
142
143div.content { /* Block element content. */
144 padding: 0;
145}
146
147/* Block element titles. */
148div.title, caption.title {
Junio C Hamano68cf15a2010-11-06 01:01:59149 color: #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23150 font-weight: bold;
151 text-align: left;
152 margin-top: 1.0em;
153 margin-bottom: 0.5em;
154}
155div.title + * {
156 margin-top: 0;
157}
158
159td div.title:first-child {
160 margin-top: 0.0em;
161}
162div.content div.title:first-child {
163 margin-top: 0.0em;
164}
165div.content + div.title {
166 margin-top: 0.0em;
167}
168
169div.sidebarblock > div.content {
170 background: #ffffee;
Junio C Hamano9d971152012-12-19 00:43:11171 border: 1px solid #dddddd;
172 border-left: 4px solid #f0f0f0;
Junio C Hamano1a4e8412005-12-27 08:17:23173 padding: 0.5em;
174}
175
176div.listingblock > div.content {
Junio C Hamano9d971152012-12-19 00:43:11177 border: 1px solid #dddddd;
178 border-left: 5px solid #f0f0f0;
179 background: #f8f8f8;
Junio C Hamano1a4e8412005-12-27 08:17:23180 padding: 0.5em;
181}
182
Junio C Hamano7bd050f2011-09-22 06:32:22183div.quoteblock, div.verseblock {
184 padding-left: 1.0em;
185 margin-left: 1.0em;
Junio C Hamano68cf15a2010-11-06 01:01:59186 margin-right: 10%;
Junio C Hamano9d971152012-12-19 00:43:11187 border-left: 5px solid #f0f0f0;
188 color: #888;
Junio C Hamano1a4e8412005-12-27 08:17:23189}
Junio C Hamano7bd050f2011-09-22 06:32:22190
Junio C Hamano68cf15a2010-11-06 01:01:59191div.quoteblock > div.attribution {
192 padding-top: 0.5em;
Junio C Hamano1a4e8412005-12-27 08:17:23193 text-align: right;
194}
Junio C Hamano68cf15a2010-11-06 01:01:59195
Junio C Hamano9d971152012-12-19 00:43:11196div.verseblock > pre.content {
197 font-family: inherit;
198 font-size: inherit;
Junio C Hamano68cf15a2010-11-06 01:01:59199}
200div.verseblock > div.attribution {
201 padding-top: 0.75em;
202 text-align: left;
203}
204/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
Junio C Hamanoba4b9282008-07-06 05:20:31205div.verseblock + div.attribution {
206 text-align: left;
207}
Junio C Hamano1a4e8412005-12-27 08:17:23208
209div.admonitionblock .icon {
210 vertical-align: top;
211 font-size: 1.1em;
212 font-weight: bold;
213 text-decoration: underline;
214 color: #527bbd;
215 padding-right: 0.5em;
216}
217div.admonitionblock td.content {
218 padding-left: 0.5em;
Junio C Hamano7bd050f2011-09-22 06:32:22219 border-left: 3px solid #dddddd;
Junio C Hamano1a4e8412005-12-27 08:17:23220}
221
222div.exampleblock > div.content {
Junio C Hamano7bd050f2011-09-22 06:32:22223 border-left: 3px solid #dddddd;
224 padding-left: 0.5em;
Junio C Hamano1a4e8412005-12-27 08:17:23225}
226
Junio C Hamano1a4e8412005-12-27 08:17:23227div.imageblock div.content { padding-left: 0; }
Junio C Hamanoac12f0e2014-09-19 22:32:51228span.image img { border-style: none; vertical-align: text-bottom; }
Junio C Hamano68cf15a2010-11-06 01:01:59229a.image:visited { color: white; }
Junio C Hamano1a4e8412005-12-27 08:17:23230
231dl {
232 margin-top: 0.8em;
233 margin-bottom: 0.8em;
234}
235dt {
236 margin-top: 0.5em;
237 margin-bottom: 0;
Junio C Hamano68cf15a2010-11-06 01:01:59238 font-style: normal;
239 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:23240}
241dd > *:first-child {
Junio C Hamano68cf15a2010-11-06 01:01:59242 margin-top: 0.1em;
Junio C Hamano1a4e8412005-12-27 08:17:23243}
244
245ul, ol {
246 list-style-position: outside;
247}
Junio C Hamano68cf15a2010-11-06 01:01:59248ol.arabic {
249 list-style-type: decimal;
250}
251ol.loweralpha {
Junio C Hamano1a4e8412005-12-27 08:17:23252 list-style-type: lower-alpha;
253}
Junio C Hamano68cf15a2010-11-06 01:01:59254ol.upperalpha {
255 list-style-type: upper-alpha;
256}
257ol.lowerroman {
258 list-style-type: lower-roman;
259}
260ol.upperroman {
261 list-style-type: upper-roman;
262}
263
264div.compact ul, div.compact ol,
265div.compact p, div.compact p,
266div.compact div, div.compact div {
267 margin-top: 0.1em;
268 margin-bottom: 0.1em;
269}
Junio C Hamano1a4e8412005-12-27 08:17:23270
Junio C Hamano1a4e8412005-12-27 08:17:23271tfoot {
272 font-weight: bold;
273}
Junio C Hamano68cf15a2010-11-06 01:01:59274td > div.verse {
275 white-space: pre;
276}
Junio C Hamano68cf15a2010-11-06 01:01:59277
278div.hdlist {
Junio C Hamano1a4e8412005-12-27 08:17:23279 margin-top: 0.8em;
280 margin-bottom: 0.8em;
281}
Junio C Hamano68cf15a2010-11-06 01:01:59282div.hdlist tr {
283 padding-bottom: 15px;
Junio C Hamanoba4b9282008-07-06 05:20:31284}
Junio C Hamano68cf15a2010-11-06 01:01:59285dt.hdlist1.strong, td.hdlist1.strong {
286 font-weight: bold;
287}
288td.hdlist1 {
Junio C Hamano1a4e8412005-12-27 08:17:23289 vertical-align: top;
Junio C Hamano68cf15a2010-11-06 01:01:59290 font-style: normal;
Junio C Hamano1a4e8412005-12-27 08:17:23291 padding-right: 0.8em;
Junio C Hamano68cf15a2010-11-06 01:01:59292 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:23293}
Junio C Hamano68cf15a2010-11-06 01:01:59294td.hdlist2 {
Junio C Hamano1a4e8412005-12-27 08:17:23295 vertical-align: top;
296}
Junio C Hamano68cf15a2010-11-06 01:01:59297div.hdlist.compact tr {
298 margin: 0;
299 padding-bottom: 0;
300}
301
302.comment {
303 background: yellow;
304}
Junio C Hamano1a4e8412005-12-27 08:17:23305
Junio C Hamano7bd050f2011-09-22 06:32:22306.footnote, .footnoteref {
307 font-size: 0.8em;
308}
309
310span.footnote, span.footnoteref {
311 vertical-align: super;
312}
313
314#footnotes {
315 margin: 20px 0 20px 0;
316 padding: 7px 0 0 0;
317}
318
319#footnotes div.footnote {
320 margin: 0 0 5px 0;
321}
322
323#footnotes hr {
324 border: none;
325 border-top: 1px solid silver;
326 height: 1px;
327 text-align: left;
328 margin-left: 0;
329 width: 20%;
330 min-width: 100px;
331}
332
Junio C Hamano9d971152012-12-19 00:43:11333div.colist td {
334 padding-right: 0.5em;
335 padding-bottom: 0.3em;
336 vertical-align: top;
337}
338div.colist td img {
339 margin-top: 0.3em;
Junio C Hamano1a4e8412005-12-27 08:17:23340}
Junio C Hamanoba4b9282008-07-06 05:20:31341
Junio C Hamano9d971152012-12-19 00:43:11342@media print {
343 #footer-badges { display: none; }
344}
345
346#toc {
Junio C Hamano7bd050f2011-09-22 06:32:22347 margin-bottom: 2.5em;
348}
349
Junio C Hamano9d971152012-12-19 00:43:11350#toctitle {
Junio C Hamanoba4b9282008-07-06 05:20:31351 color: #527bbd;
Junio C Hamanoba4b9282008-07-06 05:20:31352 font-size: 1.1em;
353 font-weight: bold;
354 margin-top: 1.0em;
355 margin-bottom: 0.1em;
356}
357
Junio C Hamanoac12f0e2014-09-19 22:32:51358div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
Junio C Hamanoba4b9282008-07-06 05:20:31359 margin-top: 0;
360 margin-bottom: 0;
361}
362div.toclevel2 {
363 margin-left: 2em;
364 font-size: 0.9em;
365}
366div.toclevel3 {
367 margin-left: 4em;
368 font-size: 0.9em;
369}
370div.toclevel4 {
371 margin-left: 6em;
372 font-size: 0.9em;
373}
Junio C Hamano9d971152012-12-19 00:43:11374
375span.aqua { color: aqua; }
376span.black { color: black; }
377span.blue { color: blue; }
378span.fuchsia { color: fuchsia; }
379span.gray { color: gray; }
380span.green { color: green; }
381span.lime { color: lime; }
382span.maroon { color: maroon; }
383span.navy { color: navy; }
384span.olive { color: olive; }
385span.purple { color: purple; }
386span.red { color: red; }
387span.silver { color: silver; }
388span.teal { color: teal; }
389span.white { color: white; }
390span.yellow { color: yellow; }
391
392span.aqua-background { background: aqua; }
393span.black-background { background: black; }
394span.blue-background { background: blue; }
395span.fuchsia-background { background: fuchsia; }
396span.gray-background { background: gray; }
397span.green-background { background: green; }
398span.lime-background { background: lime; }
399span.maroon-background { background: maroon; }
400span.navy-background { background: navy; }
401span.olive-background { background: olive; }
402span.purple-background { background: purple; }
403span.red-background { background: red; }
404span.silver-background { background: silver; }
405span.teal-background { background: teal; }
406span.white-background { background: white; }
407span.yellow-background { background: yellow; }
408
409span.big { font-size: 2em; }
410span.small { font-size: 0.6em; }
411
412span.underline { text-decoration: underline; }
413span.overline { text-decoration: overline; }
414span.line-through { text-decoration: line-through; }
415
Junio C Hamanoac12f0e2014-09-19 22:32:51416div.unbreakable { page-break-inside: avoid; }
417
Junio C Hamano9d971152012-12-19 00:43:11418
419/*
420 * xhtml11 specific
421 *
422 * */
423
424div.tableblock {
425 margin-top: 1.0em;
426 margin-bottom: 1.5em;
427}
428div.tableblock > table {
429 border: 3px solid #527bbd;
430}
431thead, p.table.header {
432 font-weight: bold;
433 color: #527bbd;
434}
435p.table {
436 margin-top: 0;
437}
438/* Because the table frame attribute is overriden by CSS in most browsers. */
439div.tableblock > table[frame="void"] {
440 border-style: none;
441}
442div.tableblock > table[frame="hsides"] {
443 border-left-style: none;
444 border-right-style: none;
445}
446div.tableblock > table[frame="vsides"] {
447 border-top-style: none;
448 border-bottom-style: none;
449}
450
451
452/*
453 * html5 specific
454 *
455 * */
456
457table.tableblock {
458 margin-top: 1.0em;
459 margin-bottom: 1.5em;
460}
461thead, p.tableblock.header {
462 font-weight: bold;
463 color: #527bbd;
464}
465p.tableblock {
466 margin-top: 0;
467}
468table.tableblock {
469 border-width: 3px;
470 border-spacing: 0px;
471 border-style: solid;
472 border-color: #527bbd;
473 border-collapse: collapse;
474}
475th.tableblock, td.tableblock {
476 border-width: 1px;
477 padding: 4px;
478 border-style: solid;
479 border-color: #527bbd;
480}
481
482table.tableblock.frame-topbot {
483 border-left-style: hidden;
484 border-right-style: hidden;
485}
486table.tableblock.frame-sides {
487 border-top-style: hidden;
488 border-bottom-style: hidden;
489}
490table.tableblock.frame-none {
491 border-style: hidden;
492}
493
494th.tableblock.halign-left, td.tableblock.halign-left {
495 text-align: left;
496}
497th.tableblock.halign-center, td.tableblock.halign-center {
498 text-align: center;
499}
500th.tableblock.halign-right, td.tableblock.halign-right {
501 text-align: right;
502}
503
504th.tableblock.valign-top, td.tableblock.valign-top {
505 vertical-align: top;
506}
507th.tableblock.valign-middle, td.tableblock.valign-middle {
508 vertical-align: middle;
509}
510th.tableblock.valign-bottom, td.tableblock.valign-bottom {
511 vertical-align: bottom;
512}
513
514
515/*
516 * manpage specific
517 *
518 * */
519
520body.manpage h1 {
Junio C Hamano68cf15a2010-11-06 01:01:59521 padding-top: 0.5em;
522 padding-bottom: 0.5em;
523 border-top: 2px solid silver;
524 border-bottom: 2px solid silver;
525}
Junio C Hamano9d971152012-12-19 00:43:11526body.manpage h2 {
Junio C Hamano68cf15a2010-11-06 01:01:59527 border-style: none;
528}
Junio C Hamano9d971152012-12-19 00:43:11529body.manpage div.sectionbody {
530 margin-left: 3em;
Junio C Hamano68cf15a2010-11-06 01:01:59531}
532
533@media print {
Junio C Hamano9d971152012-12-19 00:43:11534 body.manpage div#toc { display: none; }
Junio C Hamano68cf15a2010-11-06 01:01:59535}
Junio C Hamanoac12f0e2014-09-19 22:32:51536
537
Junio C Hamano1a4e8412005-12-27 08:17:23538</style>
Junio C Hamano7bd050f2011-09-22 06:32:22539<script type="text/javascript">
540/*<![CDATA[*/
Junio C Hamano7bd050f2011-09-22 06:32:22541var asciidoc = { // Namespace.
542
543/////////////////////////////////////////////////////////////////////
544// Table Of Contents generator
545/////////////////////////////////////////////////////////////////////
546
547/* Author: Mihai Bazon, September 2002
548 * http://students.infoiasi.ro/~mishoo
549 *
550 * Table Of Content generator
551 * Version: 0.4
552 *
553 * Feel free to use this script under the terms of the GNU General Public
554 * License, as long as you do not remove or alter this notice.
555 */
556
557 /* modified by Troy D. Hanson, September 2006. License: GPL */
558 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
559
560// toclevels = 1..4.
561toc: function (toclevels) {
562
563 function getText(el) {
564 var text = "";
565 for (var i = el.firstChild; i != null; i = i.nextSibling) {
566 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
567 text += i.data;
568 else if (i.firstChild != null)
569 text += getText(i);
570 }
571 return text;
572 }
573
574 function TocEntry(el, text, toclevel) {
575 this.element = el;
576 this.text = text;
577 this.toclevel = toclevel;
578 }
579
580 function tocEntries(el, toclevels) {
581 var result = new Array;
Junio C Hamanoac12f0e2014-09-19 22:32:51582 var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
Junio C Hamano7bd050f2011-09-22 06:32:22583 // Function that scans the DOM tree for header elements (the DOM2
584 // nodeIterator API would be a better technique but not supported by all
585 // browsers).
586 var iterate = function (el) {
587 for (var i = el.firstChild; i != null; i = i.nextSibling) {
588 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
589 var mo = re.exec(i.tagName);
590 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
591 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
592 }
593 iterate(i);
594 }
595 }
596 }
597 iterate(el);
598 return result;
599 }
600
601 var toc = document.getElementById("toc");
Junio C Hamano9d971152012-12-19 00:43:11602 if (!toc) {
603 return;
604 }
605
606 // Delete existing TOC entries in case we're reloading the TOC.
607 var tocEntriesToRemove = [];
608 var i;
609 for (i = 0; i < toc.childNodes.length; i++) {
610 var entry = toc.childNodes[i];
Junio C Hamanoac12f0e2014-09-19 22:32:51611 if (entry.nodeName.toLowerCase() == 'div'
Junio C Hamano9d971152012-12-19 00:43:11612 && entry.getAttribute("class")
613 && entry.getAttribute("class").match(/^toclevel/))
614 tocEntriesToRemove.push(entry);
615 }
616 for (i = 0; i < tocEntriesToRemove.length; i++) {
617 toc.removeChild(tocEntriesToRemove[i]);
618 }
619
620 // Rebuild TOC entries.
Junio C Hamano7bd050f2011-09-22 06:32:22621 var entries = tocEntries(document.getElementById("content"), toclevels);
622 for (var i = 0; i < entries.length; ++i) {
623 var entry = entries[i];
624 if (entry.element.id == "")
625 entry.element.id = "_toc_" + i;
626 var a = document.createElement("a");
627 a.href = "#" + entry.element.id;
628 a.appendChild(document.createTextNode(entry.text));
629 var div = document.createElement("div");
630 div.appendChild(a);
631 div.className = "toclevel" + entry.toclevel;
632 toc.appendChild(div);
633 }
634 if (entries.length == 0)
635 toc.parentNode.removeChild(toc);
636},
637
638
639/////////////////////////////////////////////////////////////////////
640// Footnotes generator
641/////////////////////////////////////////////////////////////////////
642
643/* Based on footnote generation code from:
644 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
645 */
646
647footnotes: function () {
Junio C Hamano9d971152012-12-19 00:43:11648 // Delete existing footnote entries in case we're reloading the footnodes.
649 var i;
Junio C Hamano7bd050f2011-09-22 06:32:22650 var noteholder = document.getElementById("footnotes");
Junio C Hamano9d971152012-12-19 00:43:11651 if (!noteholder) {
652 return;
653 }
654 var entriesToRemove = [];
655 for (i = 0; i < noteholder.childNodes.length; i++) {
656 var entry = noteholder.childNodes[i];
Junio C Hamanoac12f0e2014-09-19 22:32:51657 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
Junio C Hamano9d971152012-12-19 00:43:11658 entriesToRemove.push(entry);
659 }
660 for (i = 0; i < entriesToRemove.length; i++) {
661 noteholder.removeChild(entriesToRemove[i]);
662 }
663
664 // Rebuild footnote entries.
665 var cont = document.getElementById("content");
Junio C Hamano7bd050f2011-09-22 06:32:22666 var spans = cont.getElementsByTagName("span");
667 var refs = {};
668 var n = 0;
669 for (i=0; i<spans.length; i++) {
670 if (spans[i].className == "footnote") {
671 n++;
Junio C Hamano9d971152012-12-19 00:43:11672 var note = spans[i].getAttribute("data-note");
673 if (!note) {
674 // Use [\s\S] in place of . so multi-line matches work.
675 // Because JavaScript has no s (dotall) regex flag.
676 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
677 spans[i].innerHTML =
678 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
679 "' title='View footnote' class='footnote'>" + n + "</a>]";
680 spans[i].setAttribute("data-note", note);
681 }
Junio C Hamano7bd050f2011-09-22 06:32:22682 noteholder.innerHTML +=
683 "<div class='footnote' id='_footnote_" + n + "'>" +
684 "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
685 n + "</a>. " + note + "</div>";
Junio C Hamano7bd050f2011-09-22 06:32:22686 var id =spans[i].getAttribute("id");
687 if (id != null) refs["#"+id] = n;
688 }
689 }
690 if (n == 0)
691 noteholder.parentNode.removeChild(noteholder);
692 else {
693 // Process footnoterefs.
694 for (i=0; i<spans.length; i++) {
695 if (spans[i].className == "footnoteref") {
696 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
697 href = href.match(/#.*/)[0]; // Because IE return full URL.
698 n = refs[href];
699 spans[i].innerHTML =
700 "[<a href='#_footnote_" + n +
701 "' title='View footnote' class='footnote'>" + n + "</a>]";
702 }
703 }
704 }
Junio C Hamano9d971152012-12-19 00:43:11705},
706
707install: function(toclevels) {
708 var timerId;
709
710 function reinstall() {
711 asciidoc.footnotes();
712 if (toclevels) {
713 asciidoc.toc(toclevels);
714 }
715 }
716
717 function reinstallAndRemoveTimer() {
718 clearInterval(timerId);
719 reinstall();
720 }
721
722 timerId = setInterval(reinstall, 500);
723 if (document.addEventListener)
724 document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
725 else
726 window.onload = reinstallAndRemoveTimer;
Junio C Hamano7bd050f2011-09-22 06:32:22727}
728
729}
Junio C Hamano9d971152012-12-19 00:43:11730asciidoc.install();
Junio C Hamano7bd050f2011-09-22 06:32:22731/*]]>*/
732</script>
Junio C Hamano1a4e8412005-12-27 08:17:23733</head>
Junio C Hamano9d971152012-12-19 00:43:11734<body class="manpage">
Junio C Hamano1a4e8412005-12-27 08:17:23735<div id="header">
736<h1>
737git-update-index(1) Manual Page
738</h1>
739<h2>NAME</h2>
740<div class="sectionbody">
741<p>git-update-index -
Junio C Hamano7c73c662007-01-19 00:37:50742 Register file contents in the working tree to the index
Junio C Hamano1a4e8412005-12-27 08:17:23743</p>
744</div>
745</div>
Junio C Hamano7bd050f2011-09-22 06:32:22746<div id="content">
Junio C Hamano9d971152012-12-19 00:43:11747<div class="sect1">
Junio C Hamano68cf15a2010-11-06 01:01:59748<h2 id="_synopsis">SYNOPSIS</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23749<div class="sectionbody">
Junio C Hamano7e9f6b72006-02-22 10:44:55750<div class="verseblock">
Junio C Hamano9d971152012-12-19 00:43:11751<pre class="content"><em>git update-index</em>
Junio C Hamano1a4e8412005-12-27 08:17:23752 [--add] [--remove | --force-remove] [--replace]
Junio C Hamano46338f52006-05-04 00:46:44753 [--refresh] [-q] [--unmerged] [--ignore-missing]
Junio C Hamanod75148a2014-04-08 19:48:38754 [(--cacheinfo &lt;mode&gt;,&lt;object&gt;,&lt;file&gt;)&#8230;]
Junio C Hamano1a4e8412005-12-27 08:17:23755 [--chmod=(+|-)x]
Junio C Hamano3d1b5a12013-05-17 23:34:02756 [--[no-]assume-unchanged]
757 [--[no-]skip-worktree]
Junio C Hamanodfccbb02008-05-26 01:16:14758 [--ignore-submodules]
Junio C Hamanod30e7ef2015-12-10 22:27:17759 [--[no-]split-index]
Junio C Hamano9099a7c2016-02-10 23:42:05760 [--[no-|test-|force-]untracked-cache]
Junio C Hamano8a0a21e2006-08-24 07:37:45761 [--really-refresh] [--unresolve] [--again | -g]
Junio C Hamano1a4e8412005-12-27 08:17:23762 [--info-only] [--index-info]
Junio C Hamanob76a6862012-05-02 22:02:46763 [-z] [--stdin] [--index-version &lt;n&gt;]
Junio C Hamano1a4e8412005-12-27 08:17:23764 [--verbose]
Junio C Hamano9d971152012-12-19 00:43:11765 [--] [&lt;file&gt;&#8230;]</pre>
766<div class="attribution">
Junio C Hamano68cf15a2010-11-06 01:01:59767</div></div>
Junio C Hamano1a4e8412005-12-27 08:17:23768</div>
Junio C Hamano9d971152012-12-19 00:43:11769</div>
770<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:31771<h2 id="_description">DESCRIPTION</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23772<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59773<div class="paragraph"><p>Modifies the index or directory cache. Each file mentioned is updated
Junio C Hamano1a4e8412005-12-27 08:17:23774into the index and any <em>unmerged</em> or <em>needs updating</em> state is
Junio C Hamanoba4b9282008-07-06 05:20:31775cleared.</p></div>
Junio C Hamanoa28a9202012-06-21 07:08:23776<div class="paragraph"><p>See also <a href="git-add.html">git-add(1)</a> for a more user-friendly way to do some of
Junio C Hamanoba4b9282008-07-06 05:20:31777the most common operations on the index.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59778<div class="paragraph"><p>The way <em>git update-index</em> handles files it is told about can be modified
Junio C Hamanoba4b9282008-07-06 05:20:31779using the various options:</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23780</div>
Junio C Hamano9d971152012-12-19 00:43:11781</div>
782<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:31783<h2 id="_options">OPTIONS</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23784<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59785<div class="dlist"><dl>
786<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23787--add
788</dt>
789<dd>
790<p>
Junio C Hamano68cf15a2010-11-06 01:01:59791 If a specified file isn&#8217;t in the index already then it&#8217;s
Junio C Hamano1a4e8412005-12-27 08:17:23792 added.
793 Default behaviour is to ignore new files.
794</p>
795</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59796<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23797--remove
798</dt>
799<dd>
800<p>
Junio C Hamano68cf15a2010-11-06 01:01:59801 If a specified file is in the index but is missing then it&#8217;s
Junio C Hamano1a4e8412005-12-27 08:17:23802 removed.
Junio C Hamano341071d2006-06-04 07:24:48803 Default behavior is to ignore removed file.
Junio C Hamano1a4e8412005-12-27 08:17:23804</p>
805</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59806<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23807--refresh
808</dt>
809<dd>
810<p>
811 Looks at the current index and checks to see if merges or
812 updates are needed by checking stat() information.
813</p>
814</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59815<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23816-q
817</dt>
818<dd>
819<p>
820 Quiet. If --refresh finds that the index needs an update, the
821 default behavior is to error out. This option makes
Junio C Hamano1aa40d22010-01-21 17:46:43822 <em>git update-index</em> continue anyway.
Junio C Hamano1a4e8412005-12-27 08:17:23823</p>
824</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59825<dt class="hdlist1">
Junio C Hamano54bf1e22008-12-20 06:30:11826--ignore-submodules
827</dt>
828<dd>
829<p>
Junio C Hamanodfccbb02008-05-26 01:16:14830 Do not try to update submodules. This option is only respected
Junio C Hamano54bf1e22008-12-20 06:30:11831 when passed before --refresh.
832</p>
833</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59834<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23835--unmerged
836</dt>
837<dd>
838<p>
839 If --refresh finds unmerged changes in the index, the default
Junio C Hamano1aa40d22010-01-21 17:46:43840 behavior is to error out. This option makes <em>git update-index</em>
Junio C Hamano1a4e8412005-12-27 08:17:23841 continue anyway.
842</p>
843</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59844<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23845--ignore-missing
846</dt>
847<dd>
848<p>
849 Ignores missing files during a --refresh
850</p>
851</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59852<dt class="hdlist1">
Junio C Hamanod75148a2014-04-08 19:48:38853--cacheinfo &lt;mode&gt;,&lt;object&gt;,&lt;path&gt;
854</dt>
855<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23856--cacheinfo &lt;mode&gt; &lt;object&gt; &lt;path&gt;
857</dt>
858<dd>
859<p>
Junio C Hamanod75148a2014-04-08 19:48:38860 Directly insert the specified info into the index. For
861 backward compatibility, you can also give these three
862 arguments as three separate parameters, but new users are
863 encouraged to use a single-parameter form.
Junio C Hamano1a4e8412005-12-27 08:17:23864</p>
865</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59866<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23867--index-info
868</dt>
869<dd>
870<p>
871 Read index information from stdin.
872</p>
873</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59874<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23875--chmod=(+|-)x
876</dt>
877<dd>
878<p>
879 Set the execute permissions on the updated files.
880</p>
881</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59882<dt class="hdlist1">
Junio C Hamano3d1b5a12013-05-17 23:34:02883--[no-]assume-unchanged
Junio C Hamano7e9f6b72006-02-22 10:44:55884</dt>
885<dd>
886<p>
Junio C Hamano6df93d92014-12-22 22:48:09887 When this flag is specified, the object names recorded
888 for the paths are not updated. Instead, this option
889 sets/unsets the "assume unchanged" bit for the
890 paths. When the "assume unchanged" bit is on, the user
891 promises not to change the file and allows Git to assume
892 that the working tree file matches what is recorded in
893 the index. If you want to change the working tree file,
894 you need to unset the bit to tell Git. This is
Junio C Hamano7e9f6b72006-02-22 10:44:55895 sometimes helpful when working with a big project on a
896 filesystem that has very slow lstat(2) system call
897 (e.g. cifs).
898</p>
Junio C Hamano6df93d92014-12-22 22:48:09899<div class="paragraph"><p>Git will fail (gracefully) in case it needs to modify this file
Junio C Hamano915cd9b2008-07-20 01:24:17900in the index e.g. when merging in a commit;
901thus, in case the assumed-untracked file is changed upstream,
902you will need to handle the situation manually.</p></div>
Junio C Hamano7e9f6b72006-02-22 10:44:55903</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59904<dt class="hdlist1">
Junio C Hamano446ed772009-11-10 22:02:20905--really-refresh
906</dt>
907<dd>
908<p>
Junio C Hamano92d80372016-07-13 22:00:05909 Like <code>--refresh</code>, but checks stat information unconditionally,
Junio C Hamano446ed772009-11-10 22:02:20910 without regard to the "assume unchanged" setting.
911</p>
912</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59913<dt class="hdlist1">
Junio C Hamano3d1b5a12013-05-17 23:34:02914--[no-]skip-worktree
Junio C Hamano3c8d6702010-01-13 23:09:03915</dt>
916<dd>
917<p>
918 When one of these flags is specified, the object name recorded
919 for the paths are not updated. Instead, these options
920 set and unset the "skip-worktree" bit for the paths. See
921 section "Skip-worktree bit" below for more information.
922</p>
923</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59924<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47925-g
926</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59927<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47928--again
Junio C Hamano26a57372006-05-10 00:13:40929</dt>
930<dd>
931<p>
Junio C Hamano1aa40d22010-01-21 17:46:43932 Runs <em>git update-index</em> itself on the paths whose index
Junio C Hamanoac12f0e2014-09-19 22:32:51933 entries are different from those from the <code>HEAD</code> commit.
Junio C Hamano26a57372006-05-10 00:13:40934</p>
935</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59936<dt class="hdlist1">
Junio C Hamano46338f52006-05-04 00:46:44937--unresolve
938</dt>
939<dd>
940<p>
941 Restores the <em>unmerged</em> or <em>needs updating</em> state of a
942 file during a merge if it was cleared by accident.
943</p>
944</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59945<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23946--info-only
947</dt>
948<dd>
949<p>
950 Do not create objects in the object database for all
951 &lt;file&gt; arguments that follow this flag; just insert
952 their object IDs into the index.
953</p>
954</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59955<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23956--force-remove
957</dt>
958<dd>
959<p>
960 Remove the file from the index even when the working directory
961 still has such a file. (Implies --remove.)
962</p>
963</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59964<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23965--replace
966</dt>
967<dd>
968<p>
Junio C Hamanoac12f0e2014-09-19 22:32:51969 By default, when a file <code>path</code> exists in the index,
970 <em>git update-index</em> refuses an attempt to add <code>path/file</code>.
971 Similarly if a file <code>path/file</code> exists, a file <code>path</code>
Junio C Hamano1a4e8412005-12-27 08:17:23972 cannot be added. With --replace flag, existing entries
Junio C Hamano54bf1e22008-12-20 06:30:11973 that conflict with the entry being added are
Junio C Hamano1a4e8412005-12-27 08:17:23974 automatically removed with warning messages.
975</p>
976</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59977<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23978--stdin
979</dt>
980<dd>
981<p>
982 Instead of taking list of paths from the command line,
983 read list of paths from the standard input. Paths are
984 separated by LF (i.e. one path per line) by default.
985</p>
986</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59987<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23988--verbose
989</dt>
990<dd>
991<p>
992 Report what is being added and removed from index.
993</p>
994</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59995<dt class="hdlist1">
Junio C Hamanob76a6862012-05-02 22:02:46996--index-version &lt;n&gt;
997</dt>
998<dd>
999<p>
1000 Write the resulting index out in the named on-disk format version.
Junio C Hamano947ab822013-03-19 23:07:291001 Supported versions are 2, 3 and 4. The current default version is 2
1002 or 3, depending on whether extra features are used, such as
Junio C Hamanoac12f0e2014-09-19 22:32:511003 <code>git add -N</code>.
Junio C Hamanob76a6862012-05-02 22:02:461004</p>
Junio C Hamano947ab822013-03-19 23:07:291005<div class="paragraph"><p>Version 4 performs a simple pathname compression that reduces index
1006size by 30%-50% on large repositories, which results in faster load
1007time. Version 4 is relatively young (first released in in 1.8.0 in
1008October 2012). Other Git implementations such as JGit and libgit2
1009may not support it yet.</p></div>
Junio C Hamanob76a6862012-05-02 22:02:461010</dd>
1011<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:231012-z
1013</dt>
1014<dd>
1015<p>
Junio C Hamanoac12f0e2014-09-19 22:32:511016 Only meaningful with <code>--stdin</code> or <code>--index-info</code>; paths are
Junio C Hamanoc27b7332010-10-14 04:37:281017 separated with NUL character instead of LF.
Junio C Hamano1a4e8412005-12-27 08:17:231018</p>
1019</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591020<dt class="hdlist1">
Junio C Hamano6f0c9442014-07-16 21:51:321021--split-index
1022</dt>
1023<dt class="hdlist1">
1024--no-split-index
1025</dt>
1026<dd>
1027<p>
Junio C Hamano3d4a66d2017-03-17 21:07:261028 Enable or disable split index mode. If split-index mode is
1029 already enabled and <code>--split-index</code> is given again, all
1030 changes in $GIT_DIR/index are pushed back to the shared index
1031 file.
Junio C Hamano6f0c9442014-07-16 21:51:321032</p>
Junio C Hamano3d4a66d2017-03-17 21:07:261033<div class="paragraph"><p>These options take effect whatever the value of the <code>core.splitIndex</code>
1034configuration variable (see <a href="git-config.html">git-config(1)</a>). But a warning is
1035emitted when the change goes against the configured value, as the
1036configured value will take effect next time the index is read and this
1037will remove the intended effect of the option.</p></div>
Junio C Hamano6f0c9442014-07-16 21:51:321038</dd>
1039<dt class="hdlist1">
Junio C Hamanoc4e2a202015-05-26 21:38:471040--untracked-cache
1041</dt>
1042<dt class="hdlist1">
1043--no-untracked-cache
1044</dt>
1045<dd>
1046<p>
Junio C Hamano9099a7c2016-02-10 23:42:051047 Enable or disable untracked cache feature. Please use
1048 <code>--test-untracked-cache</code> before enabling it.
1049</p>
1050<div class="paragraph"><p>These options take effect whatever the value of the <code>core.untrackedCache</code>
1051configuration variable (see <a href="git-config.html">git-config(1)</a>). But a warning is
1052emitted when the change goes against the configured value, as the
1053configured value will take effect next time the index is read and this
1054will remove the intended effect of the option.</p></div>
1055</dd>
1056<dt class="hdlist1">
1057--test-untracked-cache
1058</dt>
1059<dd>
1060<p>
1061 Only perform tests on the working directory to make sure
1062 untracked cache can be used. You have to manually enable
1063 untracked cache using <code>--untracked-cache</code> or
1064 <code>--force-untracked-cache</code> or the <code>core.untrackedCache</code>
1065 configuration variable afterwards if you really want to use
1066 it. If a test fails the exit code is 1 and a message
1067 explains what is not working as needed, otherwise the exit
1068 code is 0 and OK is printed.
Junio C Hamanoc4e2a202015-05-26 21:38:471069</p>
1070</dd>
1071<dt class="hdlist1">
1072--force-untracked-cache
1073</dt>
1074<dd>
1075<p>
Junio C Hamano9099a7c2016-02-10 23:42:051076 Same as <code>--untracked-cache</code>. Provided for backwards
1077 compatibility with older versions of Git where
1078 <code>--untracked-cache</code> used to imply <code>--test-untracked-cache</code> but
1079 this option would enable the extension unconditionally.
Junio C Hamanoc4e2a202015-05-26 21:38:471080</p>
1081</dd>
1082<dt class="hdlist1">
Junio C Hamano1bb569e2006-05-05 23:14:251083--
Junio C Hamano1a4e8412005-12-27 08:17:231084</dt>
1085<dd>
1086<p>
1087 Do not interpret any more arguments as options.
1088</p>
1089</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591090<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:231091&lt;file&gt;
1092</dt>
1093<dd>
1094<p>
1095 Files to act on.
1096 Note that files beginning with <em>.</em> are discarded. This includes
Junio C Hamanoac12f0e2014-09-19 22:32:511097 <code>./file</code> and <code>dir/./file</code>. If you don&#8217;t want this, then use
Junio C Hamano1a4e8412005-12-27 08:17:231098 cleaner names.
1099 The same applies to directories ending <em>/</em> and paths with <em>//</em>
1100</p>
1101</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311102</dl></div>
Junio C Hamano1a4e8412005-12-27 08:17:231103</div>
Junio C Hamano9d971152012-12-19 00:43:111104</div>
1105<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:311106<h2 id="_using_refresh">Using --refresh</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231107<div class="sectionbody">
Junio C Hamano92d80372016-07-13 22:00:051108<div class="paragraph"><p><code>--refresh</code> does not calculate a new sha1 file or bring the index
Junio C Hamano1a4e8412005-12-27 08:17:231109up-to-date for mode/content changes. But what it <strong>does</strong> do is to
1110"re-match" the stat information of a file with the index, so that you
Junio C Hamano68cf15a2010-11-06 01:01:591111can refresh the index for a file that hasn&#8217;t been changed but where
Junio C Hamanoba4b9282008-07-06 05:20:311112the stat entry is out of date.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591113<div class="paragraph"><p>For example, you&#8217;d want to do this after doing a <em>git read-tree</em>, to link
Junio C Hamanoba4b9282008-07-06 05:20:311114up the stat index details with the proper files.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231115</div>
Junio C Hamano9d971152012-12-19 00:43:111116</div>
1117<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:311118<h2 id="_using_cacheinfo_or_info_only">Using --cacheinfo or --info-only</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231119<div class="sectionbody">
Junio C Hamano92d80372016-07-13 22:00:051120<div class="paragraph"><p><code>--cacheinfo</code> is used to register a file that is not in the
Junio C Hamano1a4e8412005-12-27 08:17:231121current working directory. This is useful for minimum-checkout
Junio C Hamanoba4b9282008-07-06 05:20:311122merging.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591123<div class="paragraph"><p>To pretend you have a file with mode and sha1 at path, say:</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231124<div class="listingblock">
1125<div class="content">
Junio C Hamanoac12f0e2014-09-19 22:32:511126<pre><code>$ git update-index --cacheinfo &lt;mode&gt;,&lt;sha1&gt;,&lt;path&gt;</code></pre>
Junio C Hamano1a4e8412005-12-27 08:17:231127</div></div>
Junio C Hamano92d80372016-07-13 22:00:051128<div class="paragraph"><p><code>--info-only</code> is used to register files without placing them in the object
Junio C Hamanoba4b9282008-07-06 05:20:311129database. This is useful for status-only repositories.</p></div>
Junio C Hamano92d80372016-07-13 22:00:051130<div class="paragraph"><p>Both <code>--cacheinfo</code> and <code>--info-only</code> behave similarly: the index is updated
1131but the object database isn&#8217;t. <code>--cacheinfo</code> is useful when the object is
1132in the database but the file isn&#8217;t available locally. <code>--info-only</code> is
Junio C Hamano1a4e8412005-12-27 08:17:231133useful when the file is available, but you do not wish to update the
Junio C Hamanoba4b9282008-07-06 05:20:311134object database.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231135</div>
Junio C Hamano9d971152012-12-19 00:43:111136</div>
1137<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:311138<h2 id="_using_index_info">Using --index-info</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231139<div class="sectionbody">
Junio C Hamanoac12f0e2014-09-19 22:32:511140<div class="paragraph"><p><code>--index-info</code> is a more powerful mechanism that lets you feed
Junio C Hamano1a4e8412005-12-27 08:17:231141multiple entry definitions from the standard input, and designed
Junio C Hamanoba4b9282008-07-06 05:20:311142specifically for scripts. It can take inputs of three formats:</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591143<div class="olist arabic"><ol class="arabic">
Junio C Hamano1a4e8412005-12-27 08:17:231144<li>
1145<p>
1146mode SP sha1 TAB path
1147</p>
Junio C Hamano68cf15a2010-11-06 01:01:591148<div class="paragraph"><p>The first format is what "git-apply --index-info"
Junio C Hamano1a4e8412005-12-27 08:17:231149reports, and used to reconstruct a partial tree
1150that is used for phony merge base tree when falling
Junio C Hamanoba4b9282008-07-06 05:20:311151back on 3-way merge.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231152</li>
1153<li>
1154<p>
1155mode SP type SP sha1 TAB path
1156</p>
Junio C Hamano68cf15a2010-11-06 01:01:591157<div class="paragraph"><p>The second format is to stuff <em>git ls-tree</em> output
Junio C Hamanoba4b9282008-07-06 05:20:311158into the index file.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231159</li>
1160<li>
1161<p>
1162mode SP sha1 SP stage TAB path
1163</p>
Junio C Hamano68cf15a2010-11-06 01:01:591164<div class="paragraph"><p>This format is to put higher order stages into the
Junio C Hamano1aa40d22010-01-21 17:46:431165index file and matches <em>git ls-files --stage</em> output.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231166</li>
Junio C Hamanoba4b9282008-07-06 05:20:311167</ol></div>
Junio C Hamano68cf15a2010-11-06 01:01:591168<div class="paragraph"><p>To place a higher stage entry to the index, the path should
Junio C Hamano1a4e8412005-12-27 08:17:231169first be removed by feeding a mode=0 entry for the path, and
Junio C Hamanoba4b9282008-07-06 05:20:311170then feeding necessary input lines in the third format.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591171<div class="paragraph"><p>For example, starting with this index:</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231172<div class="listingblock">
1173<div class="content">
Junio C Hamanoac12f0e2014-09-19 22:32:511174<pre><code>$ git ls-files -s
1175100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz</code></pre>
Junio C Hamano1a4e8412005-12-27 08:17:231176</div></div>
Junio C Hamanoac12f0e2014-09-19 22:32:511177<div class="paragraph"><p>you can feed the following input to <code>--index-info</code>:</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231178<div class="listingblock">
1179<div class="content">
Junio C Hamanoac12f0e2014-09-19 22:32:511180<pre><code>$ git update-index --index-info
Junio C Hamano1a4e8412005-12-27 08:17:2311810 0000000000000000000000000000000000000000 frotz
1182100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz
Junio C Hamanoac12f0e2014-09-19 22:32:511183100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz</code></pre>
Junio C Hamano1a4e8412005-12-27 08:17:231184</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:591185<div class="paragraph"><p>The first line of the input feeds 0 as the mode to remove the
Junio C Hamanoe3f080d2013-04-22 02:27:131186path; the SHA-1 does not matter as long as it is well formatted.
Junio C Hamano1a4e8412005-12-27 08:17:231187Then the second and third line feeds stage 1 and stage 2 entries
Junio C Hamanoba4b9282008-07-06 05:20:311188for that path. After the above, we would end up with this:</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231189<div class="listingblock">
1190<div class="content">
Junio C Hamanoac12f0e2014-09-19 22:32:511191<pre><code>$ git ls-files -s
Junio C Hamano1a4e8412005-12-27 08:17:231192100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz
Junio C Hamanoac12f0e2014-09-19 22:32:511193100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz</code></pre>
Junio C Hamano1a4e8412005-12-27 08:17:231194</div></div>
1195</div>
Junio C Hamano9d971152012-12-19 00:43:111196</div>
1197<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:311198<h2 id="_using_8220_assume_unchanged_8221_bit">Using &#8220;assume unchanged&#8221; bit</h2>
Junio C Hamano7e9f6b72006-02-22 10:44:551199<div class="sectionbody">
Junio C Hamano076ffcc2013-02-06 05:13:211200<div class="paragraph"><p>Many operations in Git depend on your filesystem to have an
Junio C Hamanoac12f0e2014-09-19 22:32:511201efficient <code>lstat(2)</code> implementation, so that <code>st_mtime</code>
Junio C Hamano7e9f6b72006-02-22 10:44:551202information for working tree files can be cheaply checked to see
1203if the file contents have changed from the version recorded in
1204the index file. Unfortunately, some filesystems have
Junio C Hamanoac12f0e2014-09-19 22:32:511205inefficient <code>lstat(2)</code>. If your filesystem is one of them, you
Junio C Hamano7e9f6b72006-02-22 10:44:551206can set "assume unchanged" bit to paths you have not changed to
Junio C Hamano076ffcc2013-02-06 05:13:211207cause Git not to do this check. Note that setting this bit on a
1208path does not mean Git will check the contents of the file to
1209see if it has changed&#8201;&#8212;&#8201;it makes Git to omit any checking and
Junio C Hamano7e9f6b72006-02-22 10:44:551210assume it has <strong>not</strong> changed. When you make changes to working
Junio C Hamano076ffcc2013-02-06 05:13:211211tree files, you have to explicitly tell Git about it by dropping
Junio C Hamanoba4b9282008-07-06 05:20:311212"assume unchanged" bit, either before or after you modify them.</p></div>
Junio C Hamanoac12f0e2014-09-19 22:32:511213<div class="paragraph"><p>In order to set "assume unchanged" bit, use <code>--assume-unchanged</code>
1214option. To unset, use <code>--no-assume-unchanged</code>. To see which files
1215have the "assume unchanged" bit set, use <code>git ls-files -v</code>
Junio C Hamanoa28a9202012-06-21 07:08:231216(see <a href="git-ls-files.html">git-ls-files(1)</a>).</p></div>
Junio C Hamanoac12f0e2014-09-19 22:32:511217<div class="paragraph"><p>The command looks at <code>core.ignorestat</code> configuration variable. When
1218this is true, paths updated with <code>git update-index paths...</code> and
Junio C Hamano076ffcc2013-02-06 05:13:211219paths updated with other Git commands that update both index and
Junio C Hamano1aa40d22010-01-21 17:46:431220working tree (e.g. <em>git apply --index</em>, <em>git checkout-index -u</em>,
1221and <em>git read-tree -u</em>) are automatically marked as "assume
Junio C Hamano7e9f6b72006-02-22 10:44:551222unchanged". Note that "assume unchanged" bit is <strong>not</strong> set if
Junio C Hamanoac12f0e2014-09-19 22:32:511223<code>git update-index --refresh</code> finds the working tree file matches
1224the index (use <code>git update-index --really-refresh</code> if you want
Junio C Hamanoba4b9282008-07-06 05:20:311225to mark them as "assume unchanged").</p></div>
Junio C Hamano7e9f6b72006-02-22 10:44:551226</div>
Junio C Hamano9d971152012-12-19 00:43:111227</div>
1228<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:311229<h2 id="_examples">Examples</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231230<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591231<div class="paragraph"><p>To update and refresh only the files already checked out:</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231232<div class="listingblock">
1233<div class="content">
Junio C Hamanoac12f0e2014-09-19 22:32:511234<pre><code>$ git checkout-index -n -f -a &amp;&amp; git update-index --ignore-missing --refresh</code></pre>
Junio C Hamano1a4e8412005-12-27 08:17:231235</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:591236<div class="dlist"><dl>
1237<dt class="hdlist1">
Junio C Hamanoac12f0e2014-09-19 22:32:511238On an inefficient filesystem with <code>core.ignorestat</code> set
Junio C Hamanoc8d88c22006-04-29 07:02:011239</dt>
1240<dd>
Junio C Hamano7e9f6b72006-02-22 10:44:551241<div class="listingblock">
1242<div class="content">
Junio C Hamanoac12f0e2014-09-19 22:32:511243<pre><code>$ git update-index --really-refresh <b>&lt;1&gt;</b>
Junio C Hamano68cf15a2010-11-06 01:01:591244$ git update-index --no-assume-unchanged foo.c <b>&lt;2&gt;</b>
1245$ git diff --name-only <b>&lt;3&gt;</b>
Junio C Hamano7e9f6b72006-02-22 10:44:551246$ edit foo.c
Junio C Hamano68cf15a2010-11-06 01:01:591247$ git diff --name-only <b>&lt;4&gt;</b>
Junio C Hamano7e9f6b72006-02-22 10:44:551248M foo.c
Junio C Hamano68cf15a2010-11-06 01:01:591249$ git update-index foo.c <b>&lt;5&gt;</b>
1250$ git diff --name-only <b>&lt;6&gt;</b>
Junio C Hamano7e9f6b72006-02-22 10:44:551251$ edit foo.c
Junio C Hamano68cf15a2010-11-06 01:01:591252$ git diff --name-only <b>&lt;7&gt;</b>
1253$ git update-index --no-assume-unchanged foo.c <b>&lt;8&gt;</b>
1254$ git diff --name-only <b>&lt;9&gt;</b>
Junio C Hamanoac12f0e2014-09-19 22:32:511255M foo.c</code></pre>
Junio C Hamano7e9f6b72006-02-22 10:44:551256</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:591257<div class="colist arabic"><ol>
Junio C Hamanoc8d88c22006-04-29 07:02:011258<li>
1259<p>
1260forces lstat(2) to set "assume unchanged" bits for paths that match index.
1261</p>
1262</li>
1263<li>
1264<p>
1265mark the path to be edited.
1266</p>
1267</li>
1268<li>
1269<p>
1270this does lstat(2) and finds index matches the path.
1271</p>
1272</li>
1273<li>
1274<p>
1275this does lstat(2) and finds index does <strong>not</strong> match the path.
1276</p>
1277</li>
1278<li>
1279<p>
1280registering the new version to index sets "assume unchanged" bit.
1281</p>
1282</li>
1283<li>
1284<p>
1285and it is assumed unchanged.
1286</p>
1287</li>
1288<li>
1289<p>
1290even after you edit it.
1291</p>
1292</li>
1293<li>
1294<p>
1295you can tell about the change after the fact.
1296</p>
1297</li>
1298<li>
1299<p>
1300now it checks with lstat(2) and finds it has been changed.
1301</p>
1302</li>
Junio C Hamanoba4b9282008-07-06 05:20:311303</ol></div>
Junio C Hamanoc8d88c22006-04-29 07:02:011304</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311305</dl></div>
Junio C Hamano1a4e8412005-12-27 08:17:231306</div>
Junio C Hamano9d971152012-12-19 00:43:111307</div>
1308<div class="sect1">
Junio C Hamano3c8d6702010-01-13 23:09:031309<h2 id="_skip_worktree_bit">Skip-worktree bit</h2>
1310<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591311<div class="paragraph"><p>Skip-worktree bit can be defined in one (long) sentence: When reading
Junio C Hamano3c8d6702010-01-13 23:09:031312an entry, if it is marked as skip-worktree, then Git pretends its
1313working directory version is up to date and read the index version
1314instead.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591315<div class="paragraph"><p>To elaborate, "reading" means checking for file existence, reading
Junio C Hamano3c8d6702010-01-13 23:09:031316file attributes or file content. The working directory version may be
1317present or absent. If present, its content may match against the index
1318version or not. Writing is not affected by this bit, content safety
Junio C Hamano68cf15a2010-11-06 01:01:591319is still first priority. Note that Git <em>can</em> update working directory
Junio C Hamano3c8d6702010-01-13 23:09:031320file, that is marked skip-worktree, if it is safe to do so (i.e.
1321working directory version matches index version)</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591322<div class="paragraph"><p>Although this bit looks similar to assume-unchanged bit, its goal is
1323different from assume-unchanged bit&#8217;s. Skip-worktree also takes
Junio C Hamano3c8d6702010-01-13 23:09:031324precedence over assume-unchanged bit when both are set.</p></div>
1325</div>
Junio C Hamano9d971152012-12-19 00:43:111326</div>
1327<div class="sect1">
Junio C Hamano3d4a66d2017-03-17 21:07:261328<h2 id="_split_index">Split index</h2>
1329<div class="sectionbody">
1330<div class="paragraph"><p>This mode is designed for repositories with very large indexes, and
1331aims at reducing the time it takes to repeatedly write these indexes.</p></div>
1332<div class="paragraph"><p>In this mode, the index is split into two files, $GIT_DIR/index and
1333$GIT_DIR/sharedindex.&lt;SHA-1&gt;. Changes are accumulated in
1334$GIT_DIR/index, the split index, while the shared index file contains
1335all index entries and stays unchanged.</p></div>
1336<div class="paragraph"><p>All changes in the split index are pushed back to the shared index
1337file when the number of entries in the split index reaches a level
1338specified by the splitIndex.maxPercentChange config variable (see
1339<a href="git-config.html">git-config(1)</a>).</p></div>
1340<div class="paragraph"><p>Each time a new shared index file is created, the old shared index
1341files are deleted if their modification time is older than what is
1342specified by the splitIndex.sharedIndexExpire config variable (see
1343<a href="git-config.html">git-config(1)</a>).</p></div>
1344<div class="paragraph"><p>To avoid deleting a shared index file that is still used, its
1345modification time is updated to the current time everytime a new split
1346index based on the shared index file is either created or read from.</p></div>
1347</div>
1348</div>
1349<div class="sect1">
Junio C Hamano9099a7c2016-02-10 23:42:051350<h2 id="_untracked_cache">Untracked cache</h2>
1351<div class="sectionbody">
1352<div class="paragraph"><p>This cache is meant to speed up commands that involve determining
1353untracked files such as <code>git status</code>.</p></div>
1354<div class="paragraph"><p>This feature works by recording the mtime of the working tree
1355directories and then omitting reading directories and stat calls
1356against files in those directories whose mtime hasn&#8217;t changed. For
1357this to work the underlying operating system and file system must
1358change the <code>st_mtime</code> field of directories if files in the directory
1359are added, modified or deleted.</p></div>
1360<div class="paragraph"><p>You can test whether the filesystem supports that with the
1361<code>--test-untracked-cache</code> option. The <code>--untracked-cache</code> option used
1362to implicitly perform that test in older versions of Git, but that&#8217;s
1363no longer the case.</p></div>
1364<div class="paragraph"><p>If you want to enable (or disable) this feature, it is easier to use
1365the <code>core.untrackedCache</code> configuration variable (see
1366<a href="git-config.html">git-config(1)</a>) than using the <code>--untracked-cache</code> option to
1367<code>git update-index</code> in each repository, especially if you want to do so
1368across all repositories you use, because you can set the configuration
1369variable to <code>true</code> (or <code>false</code>) in your <code>$HOME/.gitconfig</code> just once
1370and have it affect all repositories you touch.</p></div>
1371<div class="paragraph"><p>When the <code>core.untrackedCache</code> configuration variable is changed, the
1372untracked cache is added to or removed from the index the next time a
1373command reads the index; while when <code>--[no-|force-]untracked-cache</code>
1374are used, the untracked cache is immediately added to or removed from
1375the index.</p></div>
1376</div>
1377</div>
1378<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:311379<h2 id="_configuration">Configuration</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231380<div class="sectionbody">
Junio C Hamanoac12f0e2014-09-19 22:32:511381<div class="paragraph"><p>The command honors <code>core.filemode</code> configuration variable. If
Junio C Hamano446ed772009-11-10 22:02:201382your repository is on a filesystem whose executable bits are
Junio C Hamanoa28a9202012-06-21 07:08:231383unreliable, this should be set to <em>false</em> (see <a href="git-config.html">git-config(1)</a>).
Junio C Hamano1a4e8412005-12-27 08:17:231384This causes the command to ignore differences in file modes recorded
1385in the index and the file mode on the filesystem if they differ only on
1386executable bit. On such an unfortunate filesystem, you may
Junio C Hamano1aa40d22010-01-21 17:46:431387need to use <em>git update-index --chmod=</em>.</p></div>
Junio C Hamanoac12f0e2014-09-19 22:32:511388<div class="paragraph"><p>Quite similarly, if <code>core.symlinks</code> configuration variable is set
Junio C Hamanoa28a9202012-06-21 07:08:231389to <em>false</em> (see <a href="git-config.html">git-config(1)</a>), symbolic links are checked out
Junio C Hamanoaa83a7d2007-03-05 02:37:291390as plain files, and this command does not modify a recorded file mode
Junio C Hamanoba4b9282008-07-06 05:20:311391from symbolic link to regular file.</p></div>
Junio C Hamanoac12f0e2014-09-19 22:32:511392<div class="paragraph"><p>The command looks at <code>core.ignorestat</code> configuration variable. See
Junio C Hamanoba4b9282008-07-06 05:20:311393<em>Using "assume unchanged" bit</em> section above.</p></div>
Junio C Hamanoac12f0e2014-09-19 22:32:511394<div class="paragraph"><p>The command also looks at <code>core.trustctime</code> configuration variable.
Junio C Hamano90ccff32008-07-29 08:17:241395It can be useful when the inode change time is regularly modified by
1396something outside Git (file system crawlers and backup systems use
Junio C Hamanoa28a9202012-06-21 07:08:231397ctime for marking files processed) (see <a href="git-config.html">git-config(1)</a>).</p></div>
Junio C Hamano9099a7c2016-02-10 23:42:051398<div class="paragraph"><p>The untracked cache extension can be enabled by the
1399<code>core.untrackedCache</code> configuration variable (see
1400<a href="git-config.html">git-config(1)</a>).</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231401</div>
Junio C Hamano9d971152012-12-19 00:43:111402</div>
1403<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:311404<h2 id="_see_also">SEE ALSO</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231405<div class="sectionbody">
Junio C Hamanoa28a9202012-06-21 07:08:231406<div class="paragraph"><p><a href="git-config.html">git-config(1)</a>,
1407<a href="git-add.html">git-add(1)</a>,
1408<a href="git-ls-files.html">git-ls-files(1)</a></p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231409</div>
Junio C Hamano9d971152012-12-19 00:43:111410</div>
1411<div class="sect1">
Junio C Hamanoba4b9282008-07-06 05:20:311412<h2 id="_git">GIT</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231413<div class="sectionbody">
Junio C Hamanoa28a9202012-06-21 07:08:231414<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231415</div>
Junio C Hamano7bd050f2011-09-22 06:32:221416</div>
Junio C Hamano9d971152012-12-19 00:43:111417</div>
Junio C Hamano7bd050f2011-09-22 06:32:221418<div id="footnotes"><hr /></div>
Junio C Hamano1a4e8412005-12-27 08:17:231419<div id="footer">
1420<div id="footer-text">
Junio C Hamano919d24f2017-05-09 14:51:221421Last updated 2017-03-18 06:07:06 JST
Junio C Hamano1a4e8412005-12-27 08:17:231422</div>
1423</div>
1424</body>
1425</html>