blob: 6636218ffc031ba4c4efd7edfbd83b6f28a5731a [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 Hamano788eeba2010-12-08 22:50:438<title>git-notes(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 Hamano788eeba2010-12-08 22:50:4341 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:3742}
43
44strong {
45 font-weight: bold;
Junio C Hamano788eeba2010-12-08 22:50:4346 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 Hamano788eeba2010-12-08 22:50:4385ul, 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 Hamano788eeba2010-12-08 22:50:4390
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 Hamano788eeba2010-12-08 22:50:43128 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 Hamano788eeba2010-12-08 22:50:43150 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 Hamano788eeba2010-12-08 22:50:43187 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 Hamano788eeba2010-12-08 22:50:43192div.quoteblock > div.attribution {
193 padding-top: 0.5em;
Junio C Hamano3b70d3c2009-11-21 17:37:37194 text-align: right;
195}
Junio C Hamano788eeba2010-12-08 22:50:43196
Junio C Hamano9d971152012-12-19 00:43:11197div.verseblock > pre.content {
198 font-family: inherit;
199 font-size: inherit;
Junio C Hamano788eeba2010-12-08 22:50:43200}
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 Hamano788eeba2010-12-08 22:50:43230a.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 Hamano788eeba2010-12-08 22:50:43239 font-style: normal;
240 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:37241}
242dd > *:first-child {
Junio C Hamano788eeba2010-12-08 22:50:43243 margin-top: 0.1em;
Junio C Hamano3b70d3c2009-11-21 17:37:37244}
245
246ul, ol {
247 list-style-position: outside;
248}
Junio C Hamano788eeba2010-12-08 22:50:43249ol.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 Hamano788eeba2010-12-08 22:50:43255ol.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 Hamano788eeba2010-12-08 22:50:43275td > div.verse {
276 white-space: pre;
277}
Junio C Hamano788eeba2010-12-08 22:50:43278
279div.hdlist {
Junio C Hamano3b70d3c2009-11-21 17:37:37280 margin-top: 0.8em;
281 margin-bottom: 0.8em;
282}
Junio C Hamano788eeba2010-12-08 22:50:43283div.hdlist tr {
284 padding-bottom: 15px;
Junio C Hamano3b70d3c2009-11-21 17:37:37285}
Junio C Hamano788eeba2010-12-08 22:50:43286dt.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 Hamano788eeba2010-12-08 22:50:43291 font-style: normal;
Junio C Hamano3b70d3c2009-11-21 17:37:37292 padding-right: 0.8em;
Junio C Hamano788eeba2010-12-08 22:50:43293 color: navy;
Junio C Hamano3b70d3c2009-11-21 17:37:37294}
Junio C Hamano788eeba2010-12-08 22:50:43295td.hdlist2 {
Junio C Hamano3b70d3c2009-11-21 17:37:37296 vertical-align: top;
297}
Junio C Hamano788eeba2010-12-08 22:50:43298div.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 Hamano788eeba2010-12-08 22:50:43522 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 Hamano788eeba2010-12-08 22:50:43528 border-style: none;
529}
Junio C Hamano9d971152012-12-19 00:43:11530body.manpage div.sectionbody {
531 margin-left: 3em;
Junio C Hamano788eeba2010-12-08 22:50:43532}
533
534@media print {
Junio C Hamano9d971152012-12-19 00:43:11535 body.manpage div#toc { display: none; }
Junio C Hamano788eeba2010-12-08 22:50:43536}
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-notes(1) Manual Page
739</h1>
740<h2>NAME</h2>
741<div class="sectionbody">
742<p>git-notes -
Junio C Hamanoa574a092010-06-13 19:57:10743 Add or inspect object notes
Junio C Hamano3b70d3c2009-11-21 17:37:37744</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 Hamano788eeba2010-12-08 22:50:43749<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 notes</em> [list [&lt;object&gt;]]
Junio C Hamanofad84122014-12-05 23:38:06753<em>git notes</em> add [-f] [--allow-empty] [-F &lt;file&gt; | -m &lt;msg&gt; | (-c | -C) &lt;object&gt;] [&lt;object&gt;]
Junio C Hamano31667362010-03-25 00:38:53754<em>git notes</em> copy [-f] ( --stdin | &lt;from-object&gt; &lt;to-object&gt; )
Junio C Hamanofad84122014-12-05 23:38:06755<em>git notes</em> append [--allow-empty] [-F &lt;file&gt; | -m &lt;msg&gt; | (-c | -C) &lt;object&gt;] [&lt;object&gt;]
756<em>git notes</em> edit [--allow-empty] [&lt;object&gt;]
Junio C Hamanoea90ab32010-03-15 20:32:55757<em>git notes</em> show [&lt;object&gt;]
Junio C Hamanod75148a2014-04-08 19:48:38758<em>git notes</em> merge [-v | -q] [-s &lt;strategy&gt; ] &lt;notes-ref&gt;
Junio C Hamano788eeba2010-12-08 22:50:43759<em>git notes</em> merge --commit [-v | -q]
760<em>git notes</em> merge --abort [-v | -q]
Junio C Hamano084228c2011-05-30 08:13:52761<em>git notes</em> remove [--ignore-missing] [--stdin] [&lt;object&gt;&#8230;]
Junio C Hamano912712b2017-12-06 18:04:01762<em>git notes</em> prune [-n] [-v]
Junio C Hamano9d971152012-12-19 00:43:11763<em>git notes</em> get-ref</pre>
764<div class="attribution">
Junio C Hamano788eeba2010-12-08 22:50:43765</div></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37766</div>
Junio C Hamano9d971152012-12-19 00:43:11767</div>
768<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:37769<h2 id="_description">DESCRIPTION</h2>
770<div class="sectionbody">
Junio C Hamano788eeba2010-12-08 22:50:43771<div class="paragraph"><p>Adds, removes, or reads notes attached to objects, without touching
Junio C Hamanoa574a092010-06-13 19:57:10772the objects themselves.</p></div>
Junio C Hamanoc14e6ad2014-10-31 20:25:53773<div class="paragraph"><p>By default, notes are saved to and read from <code>refs/notes/commits</code>, but
Junio C Hamanoa574a092010-06-13 19:57:10774this default can be overridden. See the OPTIONS, CONFIGURATION, and
775ENVIRONMENT sections below. If this ref does not exist, it will be
776quietly created when it is first needed to store a note.</p></div>
Junio C Hamano788eeba2010-12-08 22:50:43777<div class="paragraph"><p>A typical use of notes is to supplement a commit message without
Junio C Hamanoa574a092010-06-13 19:57:10778changing the commit itself. Notes can be shown by <em>git log</em> along with
779the original commit message. To distinguish these notes from the
Junio C Hamanoea90ab32010-03-15 20:32:55780message stored in the commit object, the notes are indented like the
Junio C Hamano31667362010-03-25 00:38:53781message, after an unindented line saying "Notes (&lt;refname&gt;):" (or
Junio C Hamanoc14e6ad2014-10-31 20:25:53782"Notes:" for <code>refs/notes/commits</code>).</p></div>
783<div class="paragraph"><p>Notes can also be added to patches prepared with <code>git format-patch</code> by
784using the <code>--notes</code> option. Such notes are added as a patch commentary
Junio C Hamano4eb2b9c2012-11-15 21:12:29785after a three dash separator line.</p></div>
Junio C Hamano788eeba2010-12-08 22:50:43786<div class="paragraph"><p>To change which notes are shown by <em>git log</em>, see the
Junio C Hamanoa28a9202012-06-21 07:08:23787"notes.displayRef" configuration in <a href="git-log.html">git-log(1)</a>.</p></div>
Junio C Hamano788eeba2010-12-08 22:50:43788<div class="paragraph"><p>See the "notes.rewrite.&lt;command&gt;" configuration for a way to carry
Junio C Hamanoa574a092010-06-13 19:57:10789notes across commands that rewrite commits.</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:37790</div>
Junio C Hamano9d971152012-12-19 00:43:11791</div>
792<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:37793<h2 id="_subcommands">SUBCOMMANDS</h2>
794<div class="sectionbody">
Junio C Hamano788eeba2010-12-08 22:50:43795<div class="dlist"><dl>
796<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55797list
798</dt>
799<dd>
800<p>
801 List the notes object for a given object. If no object is
802 given, show a list of all note objects and the objects they
803 annotate (in the format "&lt;note object&gt; &lt;annotated object&gt;").
804 This is the default subcommand if no subcommand is given.
805</p>
806</dd>
Junio C Hamano788eeba2010-12-08 22:50:43807<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55808add
809</dt>
810<dd>
811<p>
812 Add notes for a given object (defaults to HEAD). Abort if the
Junio C Hamanoc14e6ad2014-10-31 20:25:53813 object already has notes (use <code>-f</code> to overwrite existing notes).
814 However, if you&#8217;re using <code>add</code> interactively (using an editor
Junio C Hamano60033462011-05-03 00:48:43815 to supply the notes contents), then - instead of aborting -
Junio C Hamanoc14e6ad2014-10-31 20:25:53816 the existing notes will be opened in the editor (like the <code>edit</code>
Junio C Hamano60033462011-05-03 00:48:43817 subcommand).
Junio C Hamanoea90ab32010-03-15 20:32:55818</p>
819</dd>
Junio C Hamano788eeba2010-12-08 22:50:43820<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55821copy
822</dt>
823<dd>
824<p>
825 Copy the notes for the first object onto the second object.
826 Abort if the second object already has notes, or if the first
827 object has none (use -f to overwrite existing notes to the
828 second object). This subcommand is equivalent to:
Junio C Hamanoc14e6ad2014-10-31 20:25:53829 <code>git notes add [-f] -C $(git notes list &lt;from-object&gt;) &lt;to-object&gt;</code>
Junio C Hamanoea90ab32010-03-15 20:32:55830</p>
Junio C Hamanoc14e6ad2014-10-31 20:25:53831<div class="paragraph"><p>In <code>--stdin</code> mode, take lines in the format</p></div>
Junio C Hamano31667362010-03-25 00:38:53832<div class="listingblock">
833<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:53834<pre><code>&lt;from-object&gt; SP &lt;to-object&gt; [ SP &lt;rest&gt; ] LF</code></pre>
Junio C Hamano31667362010-03-25 00:38:53835</div></div>
Junio C Hamano788eeba2010-12-08 22:50:43836<div class="paragraph"><p>on standard input, and copy the notes from each &lt;from-object&gt; to its
Junio C Hamanoc14e6ad2014-10-31 20:25:53837corresponding &lt;to-object&gt;. (The optional <code>&lt;rest&gt;</code> is ignored so that
838the command can read the input given to the <code>post-rewrite</code> hook.)</p></div>
Junio C Hamanoea90ab32010-03-15 20:32:55839</dd>
Junio C Hamano788eeba2010-12-08 22:50:43840<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55841append
842</dt>
843<dd>
844<p>
845 Append to the notes of an existing object (defaults to HEAD).
846 Creates a new notes object if needed.
847</p>
848</dd>
Junio C Hamano788eeba2010-12-08 22:50:43849<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37850edit
851</dt>
852<dd>
853<p>
Junio C Hamanoea90ab32010-03-15 20:32:55854 Edit the notes for a given object (defaults to HEAD).
Junio C Hamano3b70d3c2009-11-21 17:37:37855</p>
856</dd>
Junio C Hamano788eeba2010-12-08 22:50:43857<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37858show
859</dt>
860<dd>
861<p>
Junio C Hamanoea90ab32010-03-15 20:32:55862 Show the notes for a given object (defaults to HEAD).
863</p>
864</dd>
Junio C Hamano788eeba2010-12-08 22:50:43865<dt class="hdlist1">
866merge
867</dt>
868<dd>
869<p>
870 Merge the given notes ref into the current notes ref.
871 This will try to merge the changes made by the given
872 notes ref (called "remote") since the merge-base (if
873 any) into the current notes ref (called "local").
874</p>
875<div class="paragraph"><p>If conflicts arise and a strategy for automatically resolving
Junio C Hamano3891e252015-08-31 23:06:13876conflicting notes (see the "NOTES MERGE STRATEGIES" section) is not given,
Junio C Hamano788eeba2010-12-08 22:50:43877the "manual" resolver is used. This resolver checks out the
Junio C Hamanoc14e6ad2014-10-31 20:25:53878conflicting notes in a special worktree (<code>.git/NOTES_MERGE_WORKTREE</code>),
Junio C Hamano788eeba2010-12-08 22:50:43879and instructs the user to manually resolve the conflicts there.
880When done, the user can either finalize the merge with
881<em>git notes merge --commit</em>, or abort the merge with
882<em>git notes merge --abort</em>.</p></div>
883</dd>
884<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55885remove
886</dt>
887<dd>
888<p>
Junio C Hamano084228c2011-05-30 08:13:52889 Remove the notes for given objects (defaults to HEAD). When
890 giving zero or one object from the command line, this is
891 equivalent to specifying an empty note message to
Junio C Hamanoc14e6ad2014-10-31 20:25:53892 the <code>edit</code> subcommand.
Junio C Hamanoea90ab32010-03-15 20:32:55893</p>
894</dd>
Junio C Hamano788eeba2010-12-08 22:50:43895<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55896prune
897</dt>
898<dd>
899<p>
900 Remove all notes for non-existing/unreachable objects.
Junio C Hamano3b70d3c2009-11-21 17:37:37901</p>
902</dd>
Junio C Hamano788eeba2010-12-08 22:50:43903<dt class="hdlist1">
904get-ref
905</dt>
906<dd>
907<p>
908 Print the current notes ref. This provides an easy way to
909 retrieve the current notes ref (e.g. from scripts).
910</p>
911</dd>
Junio C Hamano3b70d3c2009-11-21 17:37:37912</dl></div>
913</div>
Junio C Hamano9d971152012-12-19 00:43:11914</div>
915<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:37916<h2 id="_options">OPTIONS</h2>
917<div class="sectionbody">
Junio C Hamano788eeba2010-12-08 22:50:43918<div class="dlist"><dl>
919<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55920-f
921</dt>
Junio C Hamano788eeba2010-12-08 22:50:43922<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55923--force
924</dt>
925<dd>
926<p>
927 When adding notes to an object that already has notes,
928 overwrite the existing notes (instead of aborting).
929</p>
930</dd>
Junio C Hamano788eeba2010-12-08 22:50:43931<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37932-m &lt;msg&gt;
933</dt>
Junio C Hamano788eeba2010-12-08 22:50:43934<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55935--message=&lt;msg&gt;
936</dt>
Junio C Hamano3b70d3c2009-11-21 17:37:37937<dd>
938<p>
939 Use the given note message (instead of prompting).
Junio C Hamanoc14e6ad2014-10-31 20:25:53940 If multiple <code>-m</code> options are given, their values
Junio C Hamanoea90ab32010-03-15 20:32:55941 are concatenated as separate paragraphs.
Junio C Hamanoc14e6ad2014-10-31 20:25:53942 Lines starting with <code>#</code> and empty lines other than a
Junio C Hamanoa574a092010-06-13 19:57:10943 single line between paragraphs will be stripped out.
Junio C Hamano3b70d3c2009-11-21 17:37:37944</p>
945</dd>
Junio C Hamano788eeba2010-12-08 22:50:43946<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37947-F &lt;file&gt;
948</dt>
Junio C Hamano788eeba2010-12-08 22:50:43949<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55950--file=&lt;file&gt;
951</dt>
Junio C Hamano3b70d3c2009-11-21 17:37:37952<dd>
953<p>
954 Take the note message from the given file. Use <em>-</em> to
955 read the note message from the standard input.
Junio C Hamanoc14e6ad2014-10-31 20:25:53956 Lines starting with <code>#</code> and empty lines other than a
Junio C Hamanoa574a092010-06-13 19:57:10957 single line between paragraphs will be stripped out.
Junio C Hamanoea90ab32010-03-15 20:32:55958</p>
959</dd>
Junio C Hamano788eeba2010-12-08 22:50:43960<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55961-C &lt;object&gt;
962</dt>
Junio C Hamano788eeba2010-12-08 22:50:43963<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55964--reuse-message=&lt;object&gt;
965</dt>
966<dd>
967<p>
Junio C Hamano7bd050f2011-09-22 06:32:22968 Take the given blob object (for example, another note) as the
Junio C Hamanoc14e6ad2014-10-31 20:25:53969 note message. (Use <code>git notes copy &lt;object&gt;</code> instead to
Junio C Hamano7bd050f2011-09-22 06:32:22970 copy notes between objects.)
Junio C Hamanoea90ab32010-03-15 20:32:55971</p>
972</dd>
Junio C Hamano788eeba2010-12-08 22:50:43973<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55974-c &lt;object&gt;
975</dt>
Junio C Hamano788eeba2010-12-08 22:50:43976<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:55977--reedit-message=&lt;object&gt;
978</dt>
979<dd>
980<p>
Junio C Hamano92d80372016-07-13 22:00:05981 Like <em>-C</em>, but with <code>-c</code> the editor is invoked, so that
Junio C Hamanoea90ab32010-03-15 20:32:55982 the user can further edit the note message.
Junio C Hamano3b70d3c2009-11-21 17:37:37983</p>
984</dd>
Junio C Hamano788eeba2010-12-08 22:50:43985<dt class="hdlist1">
Junio C Hamanofad84122014-12-05 23:38:06986--allow-empty
987</dt>
988<dd>
989<p>
990 Allow an empty note object to be stored. The default behavior is
991 to automatically remove empty notes.
992</p>
993</dd>
994<dt class="hdlist1">
Junio C Hamano31667362010-03-25 00:38:53995--ref &lt;ref&gt;
996</dt>
997<dd>
998<p>
Junio C Hamanoa574a092010-06-13 19:57:10999 Manipulate the notes tree in &lt;ref&gt;. This overrides
Junio C Hamano042f2142016-06-27 18:05:051000 <code>GIT_NOTES_REF</code> and the "core.notesRef" configuration. The ref
Junio C Hamano1f7c4a52015-10-14 22:15:511001 specifies the full refname when it begins with <code>refs/notes/</code>; when it
1002 begins with <code>notes/</code>, <code>refs/</code> and otherwise <code>refs/notes/</code> is prefixed
1003 to form a full name of the ref.
Junio C Hamano31667362010-03-25 00:38:531004</p>
1005</dd>
Junio C Hamano788eeba2010-12-08 22:50:431006<dt class="hdlist1">
Junio C Hamano084228c2011-05-30 08:13:521007--ignore-missing
1008</dt>
1009<dd>
1010<p>
1011 Do not consider it an error to request removing notes from an
1012 object that does not have notes attached to it.
1013</p>
1014</dd>
1015<dt class="hdlist1">
1016--stdin
1017</dt>
1018<dd>
1019<p>
Junio C Hamanod4bbec02017-09-25 07:24:531020 Also read the object names to remove notes from the standard
Junio C Hamano084228c2011-05-30 08:13:521021 input (there is no reason you cannot combine this with object
1022 names from the command line).
1023</p>
1024</dd>
1025<dt class="hdlist1">
Junio C Hamanoa574a092010-06-13 19:57:101026-n
1027</dt>
Junio C Hamano788eeba2010-12-08 22:50:431028<dt class="hdlist1">
Junio C Hamanoe85e36f2010-08-10 05:30:141029--dry-run
1030</dt>
Junio C Hamanoa574a092010-06-13 19:57:101031<dd>
1032<p>
1033 Do not remove anything; just report the object names whose notes
1034 would be removed.
1035</p>
1036</dd>
Junio C Hamano788eeba2010-12-08 22:50:431037<dt class="hdlist1">
1038-s &lt;strategy&gt;
1039</dt>
1040<dt class="hdlist1">
1041--strategy=&lt;strategy&gt;
1042</dt>
1043<dd>
1044<p>
1045 When merging notes, resolve notes conflicts using the given
1046 strategy. The following strategies are recognized: "manual"
1047 (default), "ours", "theirs", "union" and "cat_sort_uniq".
Junio C Hamano3891e252015-08-31 23:06:131048 This option overrides the "notes.mergeStrategy" configuration setting.
Junio C Hamano788eeba2010-12-08 22:50:431049 See the "NOTES MERGE STRATEGIES" section below for more
1050 information on each notes merge strategy.
1051</p>
1052</dd>
1053<dt class="hdlist1">
1054--commit
1055</dt>
1056<dd>
1057<p>
1058 Finalize an in-progress <em>git notes merge</em>. Use this option
1059 when you have resolved the conflicts that <em>git notes merge</em>
1060 stored in .git/NOTES_MERGE_WORKTREE. This amends the partial
1061 merge commit created by <em>git notes merge</em> (stored in
1062 .git/NOTES_MERGE_PARTIAL) by adding the notes in
1063 .git/NOTES_MERGE_WORKTREE. The notes ref stored in the
1064 .git/NOTES_MERGE_REF symref is updated to the resulting commit.
1065</p>
1066</dd>
1067<dt class="hdlist1">
1068--abort
1069</dt>
1070<dd>
1071<p>
Junio C Hamanoea1ac8d2018-07-18 20:16:481072 Abort/reset an in-progress <em>git notes merge</em>, i.e. a notes merge
Junio C Hamano788eeba2010-12-08 22:50:431073 with conflicts. This simply removes all files related to the
1074 notes merge.
1075</p>
1076</dd>
1077<dt class="hdlist1">
1078-q
1079</dt>
1080<dt class="hdlist1">
1081--quiet
1082</dt>
1083<dd>
1084<p>
1085 When merging notes, operate quietly.
1086</p>
1087</dd>
1088<dt class="hdlist1">
Junio C Hamanoa574a092010-06-13 19:57:101089-v
1090</dt>
Junio C Hamano788eeba2010-12-08 22:50:431091<dt class="hdlist1">
Junio C Hamanoe85e36f2010-08-10 05:30:141092--verbose
1093</dt>
Junio C Hamanoa574a092010-06-13 19:57:101094<dd>
1095<p>
Junio C Hamano788eeba2010-12-08 22:50:431096 When merging notes, be more verbose.
1097 When pruning notes, report all object names whose notes are
1098 removed.
Junio C Hamanoa574a092010-06-13 19:57:101099</p>
1100</dd>
Junio C Hamano3b70d3c2009-11-21 17:37:371101</dl></div>
1102</div>
Junio C Hamano9d971152012-12-19 00:43:111103</div>
1104<div class="sect1">
Junio C Hamanoa574a092010-06-13 19:57:101105<h2 id="_discussion">DISCUSSION</h2>
Junio C Hamano31667362010-03-25 00:38:531106<div class="sectionbody">
Junio C Hamano788eeba2010-12-08 22:50:431107<div class="paragraph"><p>Commit notes are blobs containing extra information about an object
1108(usually information to supplement a commit&#8217;s message). These blobs
Junio C Hamanoa574a092010-06-13 19:57:101109are taken from notes refs. A notes ref is usually a branch which
1110contains "files" whose paths are the object names for the objects
1111they describe, with some directory separators included for performance
Junio C Hamano7bd050f2011-09-22 06:32:221112reasons <span class="footnote"><br />[Permitted pathnames have the form
Junio C Hamanoc14e6ad2014-10-31 20:25:531113<em>ab</em><code>/</code><em>cd</em><code>/</code><em>ef</em><code>/</code><em>&#8230;</em><code>/</code><em>abcdef&#8230;</em>: a sequence of directory
Junio C Hamanoa574a092010-06-13 19:57:101114names of two hexadecimal digits each followed by a filename with the
Junio C Hamano7bd050f2011-09-22 06:32:221115rest of the object ID.]<br /></span>.</p></div>
Junio C Hamano788eeba2010-12-08 22:50:431116<div class="paragraph"><p>Every notes change creates a new commit at the specified notes ref.
Junio C Hamano31667362010-03-25 00:38:531117You can therefore inspect the history of the notes by invoking, e.g.,
Junio C Hamanoc14e6ad2014-10-31 20:25:531118<code>git log -p notes/commits</code>. Currently the commit message only records
Junio C Hamanoa574a092010-06-13 19:57:101119which operation triggered the update, and the commit authorship is
Junio C Hamanoa28a9202012-06-21 07:08:231120determined according to the usual rules (see <a href="git-commit.html">git-commit(1)</a>).
Junio C Hamanoa574a092010-06-13 19:57:101121These details may change in the future.</p></div>
Junio C Hamano788eeba2010-12-08 22:50:431122<div class="paragraph"><p>It is also permitted for a notes ref to point directly to a tree
Junio C Hamanoa574a092010-06-13 19:57:101123object, in which case the history of the notes can be read with
Junio C Hamanoc14e6ad2014-10-31 20:25:531124<code>git log -p -g &lt;refname&gt;</code>.</p></div>
Junio C Hamanoa574a092010-06-13 19:57:101125</div>
Junio C Hamano9d971152012-12-19 00:43:111126</div>
1127<div class="sect1">
Junio C Hamano788eeba2010-12-08 22:50:431128<h2 id="_notes_merge_strategies">NOTES MERGE STRATEGIES</h2>
1129<div class="sectionbody">
1130<div class="paragraph"><p>The default notes merge strategy is "manual", which checks out
1131conflicting notes in a special work tree for resolving notes conflicts
Junio C Hamanoc14e6ad2014-10-31 20:25:531132(<code>.git/NOTES_MERGE_WORKTREE</code>), and instructs the user to resolve the
Junio C Hamano788eeba2010-12-08 22:50:431133conflicts in that work tree.
1134When done, the user can either finalize the merge with
1135<em>git notes merge --commit</em>, or abort the merge with
1136<em>git notes merge --abort</em>.</p></div>
Junio C Hamano3891e252015-08-31 23:06:131137<div class="paragraph"><p>Users may select an automated merge strategy from among the following using
1138either -s/--strategy option or configuring notes.mergeStrategy accordingly:</p></div>
Junio C Hamano788eeba2010-12-08 22:50:431139<div class="paragraph"><p>"ours" automatically resolves conflicting notes in favor of the local
1140version (i.e. the current notes ref).</p></div>
1141<div class="paragraph"><p>"theirs" automatically resolves notes conflicts in favor of the remote
1142version (i.e. the given notes ref being merged into the current notes
1143ref).</p></div>
1144<div class="paragraph"><p>"union" automatically resolves notes conflicts by concatenating the
1145local and remote versions.</p></div>
1146<div class="paragraph"><p>"cat_sort_uniq" is similar to "union", but in addition to concatenating
1147the local and remote versions, this strategy also sorts the resulting
1148lines, and removes duplicate lines from the result. This is equivalent
1149to applying the "cat | sort | uniq" shell pipeline to the local and
1150remote versions. This strategy is useful if the notes follow a line-based
1151format where one wants to avoid duplicated lines in the merge result.
1152Note that if either the local or remote version contain duplicate lines
1153prior to the merge, these will also be removed by this notes merge
1154strategy.</p></div>
1155</div>
Junio C Hamano9d971152012-12-19 00:43:111156</div>
1157<div class="sect1">
Junio C Hamanoa574a092010-06-13 19:57:101158<h2 id="_examples">EXAMPLES</h2>
1159<div class="sectionbody">
Junio C Hamano788eeba2010-12-08 22:50:431160<div class="paragraph"><p>You can use notes to add annotations with information that was not
Junio C Hamanoa574a092010-06-13 19:57:101161available at the time a commit was written.</p></div>
1162<div class="listingblock">
1163<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:531164<pre><code>$ git notes add -m 'Tested-by: Johannes Sixt &lt;j6t@kdbg.org&gt;' 72a144e2
Junio C Hamanoa574a092010-06-13 19:57:101165$ git show -s 72a144e
1166[...]
1167 Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
1168
1169Notes:
Junio C Hamanoc14e6ad2014-10-31 20:25:531170 Tested-by: Johannes Sixt &lt;j6t@kdbg.org&gt;</code></pre>
Junio C Hamanoa574a092010-06-13 19:57:101171</div></div>
Junio C Hamano788eeba2010-12-08 22:50:431172<div class="paragraph"><p>In principle, a note is a regular Git blob, and any kind of
Junio C Hamanoa574a092010-06-13 19:57:101173(non-)format is accepted. You can binary-safely create notes from
1174arbitrary files using <em>git hash-object</em>:</p></div>
1175<div class="listingblock">
1176<div class="content">
Junio C Hamanoc14e6ad2014-10-31 20:25:531177<pre><code>$ cc *.c
Junio C Hamanoa574a092010-06-13 19:57:101178$ blob=$(git hash-object -w a.out)
Junio C Hamanofad84122014-12-05 23:38:061179$ git notes --ref=built add --allow-empty -C "$blob" HEAD</code></pre>
Junio C Hamanoa574a092010-06-13 19:57:101180</div></div>
Junio C Hamanoc14e6ad2014-10-31 20:25:531181<div class="paragraph"><p>(You cannot simply use <code>git notes --ref=built add -F a.out HEAD</code>
Junio C Hamano7bd050f2011-09-22 06:32:221182because that is not binary-safe.)
1183Of course, it doesn&#8217;t make much sense to display non-text-format notes
Junio C Hamano788eeba2010-12-08 22:50:431184with <em>git log</em>, so if you use such notes, you&#8217;ll probably need to write
Junio C Hamanoa574a092010-06-13 19:57:101185some special-purpose tools to do something useful with them.</p></div>
1186</div>
Junio C Hamano9d971152012-12-19 00:43:111187</div>
1188<div class="sect1">
Junio C Hamanoa574a092010-06-13 19:57:101189<h2 id="_configuration">CONFIGURATION</h2>
1190<div class="sectionbody">
Junio C Hamano788eeba2010-12-08 22:50:431191<div class="dlist"><dl>
1192<dt class="hdlist1">
Junio C Hamanoa574a092010-06-13 19:57:101193core.notesRef
1194</dt>
1195<dd>
1196<p>
1197 Notes ref to read and manipulate instead of
Junio C Hamanoc14e6ad2014-10-31 20:25:531198 <code>refs/notes/commits</code>. Must be an unabbreviated ref name.
Junio C Hamanoa574a092010-06-13 19:57:101199 This setting can be overridden through the environment and
1200 command line.
1201</p>
1202</dd>
Junio C Hamano788eeba2010-12-08 22:50:431203<dt class="hdlist1">
Junio C Hamano3891e252015-08-31 23:06:131204notes.mergeStrategy
1205</dt>
1206<dd>
1207<p>
1208 Which merge strategy to choose by default when resolving notes
1209 conflicts. Must be one of <code>manual</code>, <code>ours</code>, <code>theirs</code>, <code>union</code>, or
1210 <code>cat_sort_uniq</code>. Defaults to <code>manual</code>. See "NOTES MERGE STRATEGIES"
1211 section above for more information on each strategy.
1212</p>
1213<div class="paragraph"><p>This setting can be overridden by passing the <code>--strategy</code> option.</p></div>
1214</dd>
1215<dt class="hdlist1">
1216notes.&lt;name&gt;.mergeStrategy
1217</dt>
1218<dd>
1219<p>
1220 Which merge strategy to choose when doing a notes merge into
1221 refs/notes/&lt;name&gt;. This overrides the more general
1222 "notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section above
1223 for more information on each available strategy.
1224</p>
1225</dd>
1226<dt class="hdlist1">
Junio C Hamanoa574a092010-06-13 19:57:101227notes.displayRef
1228</dt>
1229<dd>
1230<p>
1231 Which ref (or refs, if a glob or specified more than once), in
Junio C Hamanoc14e6ad2014-10-31 20:25:531232 addition to the default set by <code>core.notesRef</code> or
Junio C Hamano042f2142016-06-27 18:05:051233 <code>GIT_NOTES_REF</code>, to read notes from when showing commit
Junio C Hamanoa574a092010-06-13 19:57:101234 messages with the <em>git log</em> family of commands.
1235 This setting can be overridden on the command line or by the
Junio C Hamano042f2142016-06-27 18:05:051236 <code>GIT_NOTES_DISPLAY_REF</code> environment variable.
Junio C Hamanoa28a9202012-06-21 07:08:231237 See <a href="git-log.html">git-log(1)</a>.
Junio C Hamanoa574a092010-06-13 19:57:101238</p>
1239</dd>
Junio C Hamano788eeba2010-12-08 22:50:431240<dt class="hdlist1">
Junio C Hamanoa574a092010-06-13 19:57:101241notes.rewrite.&lt;command&gt;
1242</dt>
1243<dd>
1244<p>
Junio C Hamanoc14e6ad2014-10-31 20:25:531245 When rewriting commits with &lt;command&gt; (currently <code>amend</code> or
1246 <code>rebase</code>), if this variable is <code>false</code>, git will not copy
Junio C Hamanoa574a092010-06-13 19:57:101247 notes from the original to the rewritten commit. Defaults to
Junio C Hamanoc14e6ad2014-10-31 20:25:531248 <code>true</code>. See also "<code>notes.rewriteRef</code>" below.
Junio C Hamanoa574a092010-06-13 19:57:101249</p>
Junio C Hamano042f2142016-06-27 18:05:051250<div class="paragraph"><p>This setting can be overridden by the <code>GIT_NOTES_REWRITE_REF</code>
Junio C Hamanoa574a092010-06-13 19:57:101251environment variable.</p></div>
1252</dd>
Junio C Hamano788eeba2010-12-08 22:50:431253<dt class="hdlist1">
Junio C Hamanoa574a092010-06-13 19:57:101254notes.rewriteMode
1255</dt>
1256<dd>
1257<p>
1258 When copying notes during a rewrite, what to do if the target
Junio C Hamanoc14e6ad2014-10-31 20:25:531259 commit already has a note. Must be one of <code>overwrite</code>,
Junio C Hamano3891e252015-08-31 23:06:131260 <code>concatenate</code>, <code>cat_sort_uniq</code>, or <code>ignore</code>. Defaults to
1261 <code>concatenate</code>.
Junio C Hamanoa574a092010-06-13 19:57:101262</p>
Junio C Hamanoc14e6ad2014-10-31 20:25:531263<div class="paragraph"><p>This setting can be overridden with the <code>GIT_NOTES_REWRITE_MODE</code>
Junio C Hamanoa574a092010-06-13 19:57:101264environment variable.</p></div>
1265</dd>
Junio C Hamano788eeba2010-12-08 22:50:431266<dt class="hdlist1">
Junio C Hamanoa574a092010-06-13 19:57:101267notes.rewriteRef
1268</dt>
1269<dd>
1270<p>
1271 When copying notes during a rewrite, specifies the (fully
1272 qualified) ref whose notes should be copied. May be a glob,
1273 in which case notes in all matching refs will be copied. You
1274 may also specify this configuration several times.
1275</p>
Junio C Hamano788eeba2010-12-08 22:50:431276<div class="paragraph"><p>Does not have a default value; you must configure this variable to
Junio C Hamanoa574a092010-06-13 19:57:101277enable note rewriting.</p></div>
Junio C Hamano042f2142016-06-27 18:05:051278<div class="paragraph"><p>Can be overridden with the <code>GIT_NOTES_REWRITE_REF</code> environment variable.</p></div>
Junio C Hamanoa574a092010-06-13 19:57:101279</dd>
1280</dl></div>
1281</div>
Junio C Hamano9d971152012-12-19 00:43:111282</div>
1283<div class="sect1">
Junio C Hamanoa574a092010-06-13 19:57:101284<h2 id="_environment">ENVIRONMENT</h2>
1285<div class="sectionbody">
Junio C Hamano788eeba2010-12-08 22:50:431286<div class="dlist"><dl>
1287<dt class="hdlist1">
Junio C Hamano042f2142016-06-27 18:05:051288<code>GIT_NOTES_REF</code>
Junio C Hamanoa574a092010-06-13 19:57:101289</dt>
1290<dd>
1291<p>
Junio C Hamanoc14e6ad2014-10-31 20:25:531292 Which ref to manipulate notes from, instead of <code>refs/notes/commits</code>.
1293 This overrides the <code>core.notesRef</code> setting.
Junio C Hamanoa574a092010-06-13 19:57:101294</p>
1295</dd>
Junio C Hamano788eeba2010-12-08 22:50:431296<dt class="hdlist1">
Junio C Hamano042f2142016-06-27 18:05:051297<code>GIT_NOTES_DISPLAY_REF</code>
Junio C Hamanoa574a092010-06-13 19:57:101298</dt>
1299<dd>
1300<p>
1301 Colon-delimited list of refs or globs indicating which refs,
Junio C Hamanoc14e6ad2014-10-31 20:25:531302 in addition to the default from <code>core.notesRef</code> or
Junio C Hamano042f2142016-06-27 18:05:051303 <code>GIT_NOTES_REF</code>, to read notes from when showing commit
Junio C Hamanoa574a092010-06-13 19:57:101304 messages.
Junio C Hamanoc14e6ad2014-10-31 20:25:531305 This overrides the <code>notes.displayRef</code> setting.
Junio C Hamanoa574a092010-06-13 19:57:101306</p>
Junio C Hamano788eeba2010-12-08 22:50:431307<div class="paragraph"><p>A warning will be issued for refs that do not exist, but a glob that
Junio C Hamanoa574a092010-06-13 19:57:101308does not match any refs is silently ignored.</p></div>
1309</dd>
Junio C Hamano788eeba2010-12-08 22:50:431310<dt class="hdlist1">
Junio C Hamano042f2142016-06-27 18:05:051311<code>GIT_NOTES_REWRITE_MODE</code>
Junio C Hamanoa574a092010-06-13 19:57:101312</dt>
1313<dd>
1314<p>
1315 When copying notes during a rewrite, what to do if the target
1316 commit already has a note.
Junio C Hamano3891e252015-08-31 23:06:131317 Must be one of <code>overwrite</code>, <code>concatenate</code>, <code>cat_sort_uniq</code>, or <code>ignore</code>.
Junio C Hamanoc14e6ad2014-10-31 20:25:531318 This overrides the <code>core.rewriteMode</code> setting.
Junio C Hamanoa574a092010-06-13 19:57:101319</p>
1320</dd>
Junio C Hamano788eeba2010-12-08 22:50:431321<dt class="hdlist1">
Junio C Hamano042f2142016-06-27 18:05:051322<code>GIT_NOTES_REWRITE_REF</code>
Junio C Hamanoa574a092010-06-13 19:57:101323</dt>
1324<dd>
1325<p>
1326 When rewriting commits, which notes to copy from the original
1327 to the rewritten commit. Must be a colon-delimited list of
1328 refs or globs.
1329</p>
Junio C Hamano788eeba2010-12-08 22:50:431330<div class="paragraph"><p>If not set in the environment, the list of notes to copy depends
Junio C Hamanoc14e6ad2014-10-31 20:25:531331on the <code>notes.rewrite.&lt;command&gt;</code> and <code>notes.rewriteRef</code> settings.</p></div>
Junio C Hamanoa574a092010-06-13 19:57:101332</dd>
1333</dl></div>
Junio C Hamano31667362010-03-25 00:38:531334</div>
Junio C Hamano9d971152012-12-19 00:43:111335</div>
1336<div class="sect1">
Junio C Hamano3b70d3c2009-11-21 17:37:371337<h2 id="_git">GIT</h2>
1338<div class="sectionbody">
Junio C Hamano198b1f12016-05-17 22:27:241339<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamano3b70d3c2009-11-21 17:37:371340</div>
Junio C Hamano7bd050f2011-09-22 06:32:221341</div>
Junio C Hamano9d971152012-12-19 00:43:111342</div>
Junio C Hamano7bd050f2011-09-22 06:32:221343<div id="footnotes"><hr /></div>
Junio C Hamano3b70d3c2009-11-21 17:37:371344<div id="footer">
1345<div id="footer-text">
Junio C Hamano2ef0ba32018-01-26 23:13:531346Last updated
Junio C Hamanoc01eecf2019-05-30 18:17:471347 2019-04-16 05:48:13 PDT
Junio C Hamano3b70d3c2009-11-21 17:37:371348</div>
1349</div>
1350</body>
1351</html>