blob: b6ac10d7c5b2210c069c88b7382e72a46a7f7b76 [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>
5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Junio C Hamanod9d71c02006-02-08 00:52:336<meta name="generator" content="AsciiDoc 7.0.2" />
Junio C Hamano1a4e8412005-12-27 08:17:237<style type="text/css">
8/* Debug borders */
9p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
10/*
11 border: 1px solid red;
12*/
13}
14
15body {
16 margin: 1em 5% 1em 5%;
17}
18
19a { color: blue; }
20a:visited { color: fuchsia; }
21
22em {
23 font-style: italic;
24}
25
26strong {
27 font-weight: bold;
28}
29
30tt {
31 color: navy;
32}
33
34h1, h2, h3, h4, h5, h6 {
35 color: #527bbd;
36 font-family: sans-serif;
37 margin-top: 1.2em;
38 margin-bottom: 0.5em;
39 line-height: 1.3;
40}
41
42h1 {
43 border-bottom: 2px solid silver;
44}
45h2 {
46 border-bottom: 2px solid silver;
47 padding-top: 0.5em;
48}
49
50div.sectionbody {
51 font-family: serif;
52 margin-left: 0;
53}
54
55hr {
56 border: 1px solid silver;
57}
58
59p {
60 margin-top: 0.5em;
61 margin-bottom: 0.5em;
62}
63
64pre {
65 padding: 0;
66 margin: 0;
67}
68
69span#author {
70 color: #527bbd;
71 font-family: sans-serif;
72 font-weight: bold;
73 font-size: 1.2em;
74}
75span#email {
76}
77span#revision {
78 font-family: sans-serif;
79}
80
81div#footer {
82 font-family: sans-serif;
83 font-size: small;
84 border-top: 2px solid silver;
85 padding-top: 0.5em;
86 margin-top: 4.0em;
87}
88div#footer-text {
89 float: left;
90 padding-bottom: 0.5em;
91}
92div#footer-badges {
93 float: right;
94 padding-bottom: 0.5em;
95}
96
97div#preamble,
98div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
99div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
100div.admonitionblock {
101 margin-right: 10%;
102 margin-top: 1.5em;
103 margin-bottom: 1.5em;
104}
105div.admonitionblock {
106 margin-top: 2.5em;
107 margin-bottom: 2.5em;
108}
109
110div.content { /* Block element content. */
111 padding: 0;
112}
113
114/* Block element titles. */
115div.title, caption.title {
116 font-family: sans-serif;
117 font-weight: bold;
118 text-align: left;
119 margin-top: 1.0em;
120 margin-bottom: 0.5em;
121}
122div.title + * {
123 margin-top: 0;
124}
125
126td div.title:first-child {
127 margin-top: 0.0em;
128}
129div.content div.title:first-child {
130 margin-top: 0.0em;
131}
132div.content + div.title {
133 margin-top: 0.0em;
134}
135
136div.sidebarblock > div.content {
137 background: #ffffee;
138 border: 1px solid silver;
139 padding: 0.5em;
140}
141
142div.listingblock > div.content {
143 border: 1px solid silver;
144 background: #f4f4f4;
145 padding: 0.5em;
146}
147
148div.quoteblock > div.content {
149 padding-left: 2.0em;
150}
151div.quoteblock .attribution {
152 text-align: right;
153}
154
155div.admonitionblock .icon {
156 vertical-align: top;
157 font-size: 1.1em;
158 font-weight: bold;
159 text-decoration: underline;
160 color: #527bbd;
161 padding-right: 0.5em;
162}
163div.admonitionblock td.content {
164 padding-left: 0.5em;
165 border-left: 2px solid silver;
166}
167
168div.exampleblock > div.content {
169 border-left: 2px solid silver;
170 padding: 0.5em;
171}
172
173div.verseblock div.content {
174 white-space: pre;
175}
176
177div.imageblock div.content { padding-left: 0; }
178div.imageblock img { border: 1px solid silver; }
179span.image img { border-style: none; }
180
181dl {
182 margin-top: 0.8em;
183 margin-bottom: 0.8em;
184}
185dt {
186 margin-top: 0.5em;
187 margin-bottom: 0;
188 font-style: italic;
189}
190dd > *:first-child {
191 margin-top: 0;
192}
193
194ul, ol {
195 list-style-position: outside;
196}
197ol.olist2 {
198 list-style-type: lower-alpha;
199}
200
201div.tableblock > table {
202 border-color: #527bbd;
203 border-width: 3px;
204}
205thead {
206 font-family: sans-serif;
207 font-weight: bold;
208}
209tfoot {
210 font-weight: bold;
211}
212
213div.hlist {
214 margin-top: 0.8em;
215 margin-bottom: 0.8em;
216}
217td.hlist1 {
218 vertical-align: top;
219 font-style: italic;
220 padding-right: 0.8em;
221}
222td.hlist2 {
223 vertical-align: top;
224}
225
226@media print {
227 div#footer-badges { display: none; }
228}
229include::./stylesheets/xhtml11-manpage.css[]
230/* Workarounds for IE6's broken and incomplete CSS2. */
231
232div.sidebar-content {
233 background: #ffffee;
234 border: 1px solid silver;
235 padding: 0.5em;
236}
237div.sidebar-title, div.image-title {
238 font-family: sans-serif;
239 font-weight: bold;
240 margin-top: 0.0em;
241 margin-bottom: 0.5em;
242}
243
244div.listingblock div.content {
245 border: 1px solid silver;
246 background: #f4f4f4;
247 padding: 0.5em;
248}
249
250div.quoteblock-content {
251 padding-left: 2.0em;
252}
253
254div.exampleblock-content {
255 border-left: 2px solid silver;
256 padding-left: 0.5em;
257}
258</style>
259<title>git-diff-tree(1)</title>
260</head>
261<body>
262<div id="header">
263<h1>
264git-diff-tree(1) Manual Page
265</h1>
266<h2>NAME</h2>
267<div class="sectionbody">
268<p>git-diff-tree -
269 Compares the content and mode of blobs found via two tree objects
270</p>
271</div>
272</div>
273<h2>SYNOPSIS</h2>
274<div class="sectionbody">
Junio C Hamano235a91e2006-01-07 01:13:58275<div class="verseblock">
Junio C Hamanofb56a962006-01-28 10:38:19276<div class="content"><em>git-diff-tree</em> [--stdin] [-m] [-s] [-v] [--no-commit-id] [--pretty]
277 [-t] [-r] [-c | --cc] [--root] [&lt;common diff options&gt;]
278 &lt;tree-ish&gt; [&lt;tree-ish&gt;] [&lt;path&gt;&#8230;]</div></div>
Junio C Hamano1a4e8412005-12-27 08:17:23279</div>
280<h2>DESCRIPTION</h2>
281<div class="sectionbody">
282<p>Compares the content and mode of the blobs found via two tree objects.</p>
283<p>If there is only one &lt;tree-ish&gt; given, the commit is compared with its parents
284(see --stdin below).</p>
285<p>Note that "git-diff-tree" can use the tree encapsulated in a commit object.</p>
286</div>
287<h2>OPTIONS</h2>
288<div class="sectionbody">
289<dl>
290<dt>
291-p
292</dt>
293<dd>
294<p>
295 Generate patch (see section on generating patches)
296</p>
297</dd>
298<dt>
299-u
300</dt>
301<dd>
302<p>
303 Synonym for "-p".
304</p>
305</dd>
306<dt>
Junio C Hamano9ae1a062006-07-10 08:12:34307--raw
308</dt>
309<dd>
310<p>
311 Generate the raw format.
312</p>
313</dd>
314<dt>
Junio C Hamano54559c82006-04-13 07:45:12315--patch-with-raw
316</dt>
317<dd>
318<p>
Junio C Hamano9ae1a062006-07-10 08:12:34319 Synonym for "-p --raw".
Junio C Hamano54559c82006-04-13 07:45:12320</p>
321</dd>
322<dt>
Junio C Hamano4a9a76a2006-10-01 05:40:29323--stat[=width[,name-width]]
Junio C Hamanoba7c8d82006-04-15 06:17:42324</dt>
325<dd>
326<p>
Junio C Hamano4a9a76a2006-10-01 05:40:29327 Generate a diffstat. You can override the default
328 output width for 80-column terminal by "--stat=width".
329 The width of the filename part can be controlled by
330 giving another width to it separated by a comma.
Junio C Hamanoba7c8d82006-04-15 06:17:42331</p>
332</dd>
333<dt>
Junio C Hamanofbe00522006-10-19 05:58:48334--numstat
335</dt>
336<dd>
337<p>
338 Similar to --stat, but shows number of added and
339 deleted lines in decimal notation and pathname without
Junio C Hamanod793de52006-12-26 09:11:43340 abbreviation, to make it more machine friendly. For
341 binary files, outputs two <tt>-</tt> instead of saying
342 <tt>0 0</tt>.
Junio C Hamanofbe00522006-10-19 05:58:48343</p>
344</dd>
345<dt>
Junio C Hamano7d23f5e2006-12-16 07:44:04346--shortstat
347</dt>
348<dd>
349<p>
350 Output only the last line of the --stat format containing total
351 number of modified files, as well as number of added and deleted
352 lines.
353</p>
354</dd>
355<dt>
Junio C Hamano6959c6c2006-05-17 10:34:11356--summary
357</dt>
358<dd>
359<p>
360 Output a condensed summary of extended header information
361 such as creations, renames and mode changes.
362</p>
363</dd>
364<dt>
Junio C Hamanod1308c92006-04-16 11:01:09365--patch-with-stat
366</dt>
367<dd>
368<p>
Junio C Hamano9ae1a062006-07-10 08:12:34369 Synonym for "-p --stat".
Junio C Hamanod1308c92006-04-16 11:01:09370</p>
371</dd>
372<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23373-z
374</dt>
375<dd>
376<p>
377 \0 line termination on output
378</p>
379</dd>
380<dt>
381--name-only
382</dt>
383<dd>
384<p>
385 Show only names of changed files.
386</p>
387</dd>
388<dt>
389--name-status
390</dt>
391<dd>
392<p>
393 Show only names and status of changed files.
394</p>
395</dd>
396<dt>
Junio C Hamano9ae1a062006-07-10 08:12:34397--color
398</dt>
399<dd>
400<p>
401 Show colored diff.
402</p>
403</dd>
404<dt>
405--no-color
406</dt>
407<dd>
408<p>
409 Turn off colored diff, even when the configuration file
410 gives the default to color output.
411</p>
412</dd>
413<dt>
Junio C Hamano85e45fa2006-08-13 07:47:41414--color-words
415</dt>
416<dd>
417<p>
418 Show colored word diff, i.e. color words which have changed.
419</p>
420</dd>
421<dt>
Junio C Hamano9ae1a062006-07-10 08:12:34422--no-renames
423</dt>
424<dd>
425<p>
426 Turn off rename detection, even when the configuration
427 file gives the default to do so.
428</p>
429</dd>
430<dt>
Junio C Hamanoa890c4f2007-01-28 10:29:21431--check
432</dt>
433<dd>
434<p>
435 Warn if changes introduce trailing whitespace
436 or an indent that uses a space before a tab.
437</p>
438</dd>
439<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23440--full-index
441</dt>
442<dd>
443<p>
444 Instead of the first handful characters, show full
445 object name of pre- and post-image blob on the "index"
446 line when generating a patch format output.
447</p>
448</dd>
449<dt>
Junio C Hamano9ae1a062006-07-10 08:12:34450--binary
451</dt>
452<dd>
453<p>
454 In addition to --full-index, output "binary diff" that
455 can be applied with "git apply".
456</p>
457</dd>
458<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23459--abbrev[=&lt;n&gt;]
460</dt>
461<dd>
462<p>
463 Instead of showing the full 40-byte hexadecimal object
464 name in diff-raw format output and diff-tree header
Junio C Hamano235a91e2006-01-07 01:13:58465 lines, show only handful hexdigits prefix. This is
Junio C Hamano1a4e8412005-12-27 08:17:23466 independent of --full-index option above, which controls
467 the diff-patch output format. Non default number of
468 digits can be specified with --abbrev=&lt;n&gt;.
469</p>
470</dd>
471<dt>
472-B
473</dt>
474<dd>
475<p>
476 Break complete rewrite changes into pairs of delete and create.
477</p>
478</dd>
479<dt>
480-M
481</dt>
482<dd>
483<p>
484 Detect renames.
485</p>
486</dd>
487<dt>
488-C
489</dt>
490<dd>
491<p>
Junio C Hamano16f98872007-06-12 16:09:14492 Detect copies as well as renames. See also <tt>--find-copies-harder</tt>.
Junio C Hamano1a4e8412005-12-27 08:17:23493</p>
494</dd>
495<dt>
Junio C Hamano6ec31b92006-02-10 05:52:01496--diff-filter=[ACDMRTUXB*]
497</dt>
498<dd>
499<p>
500 Select only files that are Added (<tt>A</tt>), Copied (<tt>C</tt>),
501 Deleted (<tt>D</tt>), Modified (<tt>M</tt>), Renamed (<tt>R</tt>), have their
502 type (mode) changed (<tt>T</tt>), are Unmerged (<tt>U</tt>), are
503 Unknown (<tt>X</tt>), or have had their pairing Broken (<tt>B</tt>).
504 Any combination of the filter characters may be used.
505 When <tt>*</tt> (All-or-none) is added to the combination, all
506 paths are selected if there is any file that matches
507 other criteria in the comparison; if there is no file
508 that matches other criteria, nothing is selected.
509</p>
510</dd>
511<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23512--find-copies-harder
513</dt>
514<dd>
515<p>
Junio C Hamano16f98872007-06-12 16:09:14516 For performance reasons, by default, <tt>-C</tt> option finds copies only
Junio C Hamano1a4e8412005-12-27 08:17:23517 if the original file of the copy was modified in the same
518 changeset. This flag makes the command
519 inspect unmodified files as candidates for the source of
520 copy. This is a very expensive operation for large
Junio C Hamano16f98872007-06-12 16:09:14521 projects, so use it with caution. Giving more than one
522 <tt>-C</tt> option has the same effect.
Junio C Hamano1a4e8412005-12-27 08:17:23523</p>
524</dd>
525<dt>
526-l&lt;num&gt;
527</dt>
528<dd>
529<p>
530 -M and -C options require O(n^2) processing time where n
531 is the number of potential rename/copy targets. This
532 option prevents rename/copy detection from running if
533 the number of rename/copy targets exceeds the specified
534 number.
535</p>
536</dd>
537<dt>
538-S&lt;string&gt;
539</dt>
540<dd>
541<p>
542 Look for differences that contain the change in &lt;string&gt;.
543</p>
544</dd>
545<dt>
546--pickaxe-all
547</dt>
548<dd>
549<p>
550 When -S finds a change, show all the changes in that
551 changeset, not just the files that contain the change
552 in &lt;string&gt;.
553</p>
554</dd>
555<dt>
Junio C Hamanobfe9e752006-04-05 21:43:28556--pickaxe-regex
557</dt>
558<dd>
559<p>
560 Make the &lt;string&gt; not a plain string but an extended POSIX
561 regex to match.
562</p>
563</dd>
564<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23565-O&lt;orderfile&gt;
566</dt>
567<dd>
568<p>
569 Output the patch in the order specified in the
570 &lt;orderfile&gt;, which has one shell glob pattern per line.
571</p>
572</dd>
573<dt>
574-R
575</dt>
576<dd>
577<p>
578 Swap two inputs; that is, show differences from index or
579 on-disk file to tree contents.
580</p>
581</dd>
Junio C Hamanoc26f5482006-07-09 09:38:14582<dt>
583--text
584</dt>
585<dd>
586<p>
587 Treat all files as text.
588</p>
589</dd>
590<dt>
591-a
592</dt>
593<dd>
594<p>
595 Shorthand for "--text".
596</p>
597</dd>
Junio C Hamanod9c2d2f2006-12-06 08:59:07598<dt>
Junio C Hamanofd468962007-02-14 23:45:04599--ignore-space-at-eol
600</dt>
601<dd>
602<p>
603 Ignore changes in white spaces at EOL.
604</p>
605</dd>
606<dt>
Junio C Hamanod9c2d2f2006-12-06 08:59:07607--ignore-space-change
608</dt>
609<dd>
610<p>
611 Ignore changes in amount of white space. This ignores white
612 space at line end, and consider all other sequences of one or
613 more white space characters to be equivalent.
614</p>
615</dd>
616<dt>
617-b
618</dt>
619<dd>
620<p>
621 Shorthand for "--ignore-space-change".
622</p>
623</dd>
624<dt>
625--ignore-all-space
626</dt>
627<dd>
628<p>
629 Ignore white space when comparing lines. This ignores
630 difference even if one line has white space where the other
631 line has none.
632</p>
633</dd>
634<dt>
635-w
636</dt>
637<dd>
638<p>
639 Shorthand for "--ignore-all-space".
640</p>
641</dd>
Junio C Hamano48fd2f62007-03-19 02:02:30642<dt>
643--exit-code
644</dt>
645<dd>
646<p>
647 Make the program exit with codes similar to diff(1).
648 That is, it exits with 1 if there were differences and
649 0 means no differences.
650</p>
651</dd>
Junio C Hamano35e57552007-03-25 07:54:35652<dt>
653--quiet
654</dt>
655<dd>
656<p>
657 Disable all output of the program. Implies --exit-code.
658</p>
659</dd>
Junio C Hamano1a4e8412005-12-27 08:17:23660</dl>
661<p>For more detailed explanation on these common options, see also
662<a href="diffcore.html">diffcore documentation</a>.</p>
663<dl>
664<dt>
665&lt;tree-ish&gt;
666</dt>
667<dd>
668<p>
669 The id of a tree object.
670</p>
671</dd>
672<dt>
673&lt;path&gt;&#8230;
674</dt>
675<dd>
676<p>
677 If provided, the results are limited to a subset of files
678 matching one of these prefix strings.
Junio C Hamano341071d2006-06-04 07:24:48679 i.e., file matches <tt>/^&lt;pattern1&gt;|&lt;pattern2&gt;|&#8230;/</tt>
Junio C Hamano1a4e8412005-12-27 08:17:23680 Note that this parameter does not provide any wildcard or regexp
681 features.
682</p>
683</dd>
684<dt>
685-r
686</dt>
687<dd>
688<p>
689 recurse into sub-trees
690</p>
691</dd>
692<dt>
693-t
694</dt>
695<dd>
696<p>
697 show tree entry itself as well as subtrees. Implies -r.
698</p>
699</dd>
700<dt>
701--root
702</dt>
703<dd>
704<p>
705 When <em>--root</em> is specified the initial commit will be showed as a big
706 creation event. This is equivalent to a diff against the NULL tree.
707</p>
708</dd>
709<dt>
710--stdin
711</dt>
712<dd>
713<p>
714 When <em>--stdin</em> is specified, the command does not take
715 &lt;tree-ish&gt; arguments from the command line. Instead, it
716 reads either one &lt;commit&gt; or a pair of &lt;tree-ish&gt;
717 separated with a single space from its standard input.
718</p>
719<p>When a single commit is given on one line of such input, it compares
720the commit with its parents. The following flags further affects its
Junio C Hamano341071d2006-06-04 07:24:48721behavior. This does not apply to the case where two &lt;tree-ish&gt;
Junio C Hamano1a4e8412005-12-27 08:17:23722separated with a single space are given.</p>
723</dd>
724<dt>
725-m
726</dt>
727<dd>
728<p>
729 By default, "git-diff-tree --stdin" does not show
730 differences for merge commits. With this flag, it shows
Junio C Hamanoa8adb1e2006-04-10 23:46:16731 differences to that commit from all of its parents. See
732 also <em>-c</em>.
Junio C Hamano1a4e8412005-12-27 08:17:23733</p>
734</dd>
735<dt>
736-s
737</dt>
738<dd>
739<p>
740 By default, "git-diff-tree --stdin" shows differences,
741 either in machine-readable form (without <em>-p</em>) or in patch
Junio C Hamano235a91e2006-01-07 01:13:58742 form (with <em>-p</em>). This output can be suppressed. It is
Junio C Hamano1a4e8412005-12-27 08:17:23743 only useful with <em>-v</em> flag.
744</p>
745</dd>
746<dt>
747-v
748</dt>
749<dd>
750<p>
751 This flag causes "git-diff-tree --stdin" to also show
752 the commit message before the differences.
753</p>
754</dd>
755<dt>
Junio C Hamanoa340aaa2006-11-23 02:47:33756--pretty[=<em>&lt;format&gt;</em>]
Junio C Hamano1a4e8412005-12-27 08:17:23757</dt>
758<dd>
759<p>
Junio C Hamano0430e3a2007-05-15 03:13:17760 Pretty print the contents of the commit logs in a given format,
761 where <em>&lt;format&gt;</em> can be one of <em>oneline</em>, <em>short</em>, <em>medium</em>,
762 <em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:&lt;string&gt;</em>.
763 When left out the format default to <em>medium</em>.
Junio C Hamano1a4e8412005-12-27 08:17:23764</p>
Junio C Hamano0430e3a2007-05-15 03:13:17765</dd>
766<dt>
Junio C Hamanoee695f22007-06-21 00:35:36767--abbrev-commit
768</dt>
769<dd>
770<p>
771 Instead of showing the full 40-byte hexadecimal commit object
772 name, show only handful hexdigits prefix. Non default number of
773 digits can be specified with "--abbrev=&lt;n&gt;" (which also modifies
774 diff output, if it is displayed).
775</p>
776<p>This should make "--pretty=oneline" a whole lot more readable for
777people using 80-column terminals.</p>
778</dd>
779<dt>
Junio C Hamano0430e3a2007-05-15 03:13:17780--encoding[=&lt;encoding&gt;]
781</dt>
782<dd>
783<p>
784 The commit objects record the encoding used for the log message
785 in their encoding header; this option can be used to tell the
786 command to re-code the commit log message in the encoding
787 preferred by the user. For non plumbing commands this
788 defaults to UTF-8.
789</p>
790</dd>
791<dt>
792--no-commit-id
793</dt>
794<dd>
795<p>
796 git-diff-tree outputs a line with the commit ID when
797 applicable. This flag suppressed the commit ID output.
798</p>
799</dd>
800<dt>
801-c
802</dt>
803<dd>
804<p>
805 This flag changes the way a merge commit is displayed
806 (which means it is useful only when the command is given
807 one &lt;tree-ish&gt;, or <em>--stdin</em>). It shows the differences
808 from each of the parents to the merge result simultaneously
809 instead of showing pairwise diff between a parent and the
810 result one at a time (which is what the <em>-m</em> option does).
811 Furthermore, it lists only files which were modified
812 from all parents.
813</p>
814</dd>
815<dt>
816--cc
817</dt>
818<dd>
819<p>
820 This flag changes the way a merge commit patch is displayed,
821 in a similar way to the <em>-c</em> option. It implies the <em>-c</em>
822 and <em>-p</em> options and further compresses the patch output
823 by omitting hunks that show differences from only one
824 parent, or show the same change from all but one parent
825 for an Octopus merge. When this optimization makes all
826 hunks disappear, the commit itself and the commit log
827 message is not shown, just like in any other "empty diff" case.
828</p>
829</dd>
830<dt>
831--always
832</dt>
833<dd>
834<p>
835 Show the commit itself and the commit log message even
836 if the diff itself is empty.
837</p>
838</dd>
839</dl>
840</div>
841<h2>PRETTY FORMATS</h2>
842<div class="sectionbody">
843<p>If the commit is a merge, and if the pretty-format
844is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is
845inserted before the <em>Author:</em> line. This line begins with
846"Merge: " and the sha1s of ancestral commits are printed,
847separated by spaces. Note that the listed commits may not
848necessarily be the list of the <strong>direct</strong> parent commits if you
849have limited your view of history: for example, if you are
850only interested in changes related to a certain directory or
851file.</p>
852<p>Here are some additional details for each format:</p>
Junio C Hamanoa340aaa2006-11-23 02:47:33853<ul>
854<li>
855<p>
856<em>oneline</em>
857</p>
858<div class="literalblock">
859<div class="content">
860<pre><tt>&lt;sha1&gt; &lt;title line&gt;</tt></pre>
861</div></div>
862<p>This is designed to be as compact as possible.</p>
863</li>
864<li>
865<p>
866<em>short</em>
867</p>
868<div class="literalblock">
869<div class="content">
870<pre><tt>commit &lt;sha1&gt;
871Author: &lt;author&gt;</tt></pre>
872</div></div>
873<div class="literalblock">
874<div class="content">
875<pre><tt>&lt;title line&gt;</tt></pre>
876</div></div>
877</li>
878<li>
879<p>
880<em>medium</em>
881</p>
882<div class="literalblock">
883<div class="content">
884<pre><tt>commit &lt;sha1&gt;
885Author: &lt;author&gt;
886Date: &lt;date&gt;</tt></pre>
887</div></div>
888<div class="literalblock">
889<div class="content">
890<pre><tt>&lt;title line&gt;</tt></pre>
891</div></div>
892<div class="literalblock">
893<div class="content">
894<pre><tt>&lt;full commit message&gt;</tt></pre>
895</div></div>
896</li>
897<li>
898<p>
899<em>full</em>
900</p>
901<div class="literalblock">
902<div class="content">
903<pre><tt>commit &lt;sha1&gt;
904Author: &lt;author&gt;
905Commit: &lt;committer&gt;</tt></pre>
906</div></div>
907<div class="literalblock">
908<div class="content">
909<pre><tt>&lt;title line&gt;</tt></pre>
910</div></div>
911<div class="literalblock">
912<div class="content">
913<pre><tt>&lt;full commit message&gt;</tt></pre>
914</div></div>
915</li>
916<li>
917<p>
918<em>fuller</em>
919</p>
920<div class="literalblock">
921<div class="content">
922<pre><tt>commit &lt;sha1&gt;
923Author: &lt;author&gt;
924AuthorDate: &lt;date &amp; time&gt;
925Commit: &lt;committer&gt;
926CommitDate: &lt;date &amp; time&gt;</tt></pre>
927</div></div>
928<div class="literalblock">
929<div class="content">
930<pre><tt>&lt;title line&gt;</tt></pre>
931</div></div>
932<div class="literalblock">
933<div class="content">
934<pre><tt>&lt;full commit message&gt;</tt></pre>
935</div></div>
936</li>
937<li>
938<p>
939<em>email</em>
940</p>
941<div class="literalblock">
942<div class="content">
943<pre><tt>From &lt;sha1&gt; &lt;date&gt;
944From: &lt;author&gt;
945Date: &lt;date &amp; time&gt;
946Subject: [PATCH] &lt;title line&gt;</tt></pre>
947</div></div>
948<div class="literalblock">
949<div class="content">
Junio C Hamano0430e3a2007-05-15 03:13:17950<pre><tt>&lt;full commit message&gt;</tt></pre>
Junio C Hamanoa340aaa2006-11-23 02:47:33951</div></div>
952</li>
953<li>
954<p>
955<em>raw</em>
956</p>
957<p>The <em>raw</em> format shows the entire commit exactly as
958stored in the commit object. Notably, the SHA1s are
959displayed in full, regardless of whether --abbrev or
960--no-abbrev are used, and <em>parents</em> information show the
961true parent commits, without taking grafts nor history
962simplification into account.</p>
963</li>
Junio C Hamanoa3fd83c2007-03-02 10:34:36964<li>
965<p>
966<em>format:</em>
967</p>
968<p>The <em>format:</em> format allows you to specify which information
969you want to show. It works a little bit like printf format,
970with the notable exception that you get a newline with <em>%n</em>
971instead of <em>\n</em>.</p>
Junio C Hamano0430e3a2007-05-15 03:13:17972<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was &gt;&gt;%s&lt;&lt;%n"</em>
Junio C Hamanoa3fd83c2007-03-02 10:34:36973would show something like this:</p>
Junio C Hamano0430e3a2007-05-15 03:13:17974<div class="listingblock">
975<div class="content">
976<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago
977The title was &gt;&gt;t4119: test autocomputing -p&lt;n&gt; for traditional diff input.&lt;&lt;
978</tt></pre>
979</div></div>
Junio C Hamanoa3fd83c2007-03-02 10:34:36980<p>The placeholders are:</p>
981<ul>
982<li>
983<p>
984<em>%H</em>: commit hash
985</p>
986</li>
987<li>
988<p>
989<em>%h</em>: abbreviated commit hash
990</p>
991</li>
992<li>
993<p>
994<em>%T</em>: tree hash
995</p>
996</li>
997<li>
998<p>
999<em>%t</em>: abbreviated tree hash
1000</p>
1001</li>
1002<li>
1003<p>
1004<em>%P</em>: parent hashes
1005</p>
1006</li>
1007<li>
1008<p>
1009<em>%p</em>: abbreviated parent hashes
1010</p>
1011</li>
1012<li>
1013<p>
1014<em>%an</em>: author name
1015</p>
1016</li>
1017<li>
1018<p>
1019<em>%ae</em>: author email
1020</p>
1021</li>
1022<li>
1023<p>
1024<em>%ad</em>: author date
1025</p>
1026</li>
1027<li>
1028<p>
1029<em>%aD</em>: author date, RFC2822 style
1030</p>
1031</li>
1032<li>
1033<p>
1034<em>%ar</em>: author date, relative
1035</p>
1036</li>
1037<li>
1038<p>
1039<em>%at</em>: author date, UNIX timestamp
1040</p>
1041</li>
1042<li>
1043<p>
1044<em>%cn</em>: committer name
1045</p>
1046</li>
1047<li>
1048<p>
1049<em>%ce</em>: committer email
1050</p>
1051</li>
1052<li>
1053<p>
1054<em>%cd</em>: committer date
1055</p>
1056</li>
1057<li>
1058<p>
1059<em>%cD</em>: committer date, RFC2822 style
1060</p>
1061</li>
1062<li>
1063<p>
1064<em>%cr</em>: committer date, relative
1065</p>
1066</li>
1067<li>
1068<p>
1069<em>%ct</em>: committer date, UNIX timestamp
1070</p>
1071</li>
1072<li>
1073<p>
1074<em>%e</em>: encoding
1075</p>
1076</li>
1077<li>
1078<p>
1079<em>%s</em>: subject
1080</p>
1081</li>
1082<li>
1083<p>
1084<em>%b</em>: body
1085</p>
1086</li>
1087<li>
1088<p>
1089<em>%Cred</em>: switch color to red
1090</p>
1091</li>
1092<li>
1093<p>
1094<em>%Cgreen</em>: switch color to green
1095</p>
1096</li>
1097<li>
1098<p>
1099<em>%Cblue</em>: switch color to blue
1100</p>
1101</li>
1102<li>
1103<p>
1104<em>%Creset</em>: reset color
1105</p>
1106</li>
1107<li>
1108<p>
Junio C Hamanod9e0e5d2007-04-14 16:22:041109<em>%m</em>: left, right or boundary mark
1110</p>
1111</li>
1112<li>
1113<p>
Junio C Hamanoa3fd83c2007-03-02 10:34:361114<em>%n</em>: newline
1115</p>
Junio C Hamano0430e3a2007-05-15 03:13:171116</li>
1117</ul>
Junio C Hamanoa3fd83c2007-03-02 10:34:361118</li>
1119</ul>
Junio C Hamano1a4e8412005-12-27 08:17:231120</div>
1121<h2>Limiting Output</h2>
1122<div class="sectionbody">
1123<p>If you're only interested in differences in a subset of files, for
1124example some architecture-specific files, you might do:</p>
1125<div class="literalblock">
1126<div class="content">
1127<pre><tt>git-diff-tree -r &lt;tree-ish&gt; &lt;tree-ish&gt; arch/ia64 include/asm-ia64</tt></pre>
1128</div></div>
1129<p>and it will only show you what changed in those two directories.</p>
1130<p>Or if you are searching for what changed in just <tt>kernel/sched.c</tt>, just do</p>
1131<div class="literalblock">
1132<div class="content">
1133<pre><tt>git-diff-tree -r &lt;tree-ish&gt; &lt;tree-ish&gt; kernel/sched.c</tt></pre>
1134</div></div>
1135<p>and it will ignore all differences to other files.</p>
1136<p>The pattern is always the prefix, and is matched exactly. There are no
1137wildcards. Even stricter, it has to match a complete path component.
1138I.e. "foo" does not pick up <tt>foobar.h</tt>. "foo" does match <tt>foo/bar.h</tt>
1139so it can be used to name subdirectories.</p>
1140<p>An example of normal usage is:</p>
1141<div class="literalblock">
1142<div class="content">
1143<pre><tt>torvalds@ppc970:~/git&gt; git-diff-tree 5319e4......
1144*100664-&gt;100664 blob ac348b.......-&gt;a01513....... git-fsck-objects.c</tt></pre>
1145</div></div>
1146<p>which tells you that the last commit changed just one file (it's from
1147this one:</p>
1148<div class="listingblock">
1149<div class="content">
1150<pre><tt>commit 3c6f7ca19ad4043e9e72fa94106f352897e651a8
1151tree 5319e4d609cdd282069cc4dce33c1db559539b03
1152parent b4e628ea30d5ab3606119d2ea5caeab141d38df7
1153author Linus Torvalds &lt;torvalds@ppc970.osdl.org&gt; Sat Apr 9 12:02:30 2005
1154committer Linus Torvalds &lt;torvalds@ppc970.osdl.org&gt; Sat Apr 9 12:02:30 2005
1155
1156Make "git-fsck-objects" print out all the root commits it finds.
1157
1158Once I do the reference tracking, I'll also make it print out all the
1159HEAD commits it finds, which is even more interesting.</tt></pre>
1160</div></div>
1161<p>in case you care).</p>
1162</div>
1163<h2>Output format</h2>
1164<div class="sectionbody">
1165<p>The output format from "git-diff-index", "git-diff-tree" and
1166"git-diff-files" are very similar.</p>
1167<p>These commands all compare two sets of things; what is
1168compared differs:</p>
1169<dl>
1170<dt>
1171git-diff-index &lt;tree-ish&gt;
1172</dt>
1173<dd>
1174<p>
1175 compares the &lt;tree-ish&gt; and the files on the filesystem.
1176</p>
1177</dd>
1178<dt>
1179git-diff-index --cached &lt;tree-ish&gt;
1180</dt>
1181<dd>
1182<p>
1183 compares the &lt;tree-ish&gt; and the index.
1184</p>
1185</dd>
1186<dt>
1187git-diff-tree [-r] &lt;tree-ish-1&gt; &lt;tree-ish-2&gt; [&lt;pattern&gt;&#8230;]
1188</dt>
1189<dd>
1190<p>
1191 compares the trees named by the two arguments.
1192</p>
1193</dd>
1194<dt>
1195git-diff-files [&lt;pattern&gt;&#8230;]
1196</dt>
1197<dd>
1198<p>
1199 compares the index and the files on the filesystem.
1200</p>
1201</dd>
1202</dl>
1203<p>An output line is formatted this way:</p>
1204<div class="listingblock">
1205<div class="content">
1206<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0
1207copy-edit :100644 100644 abcd123... 1234567... C68 file1 file2
1208rename-edit :100644 100644 abcd123... 1234567... R86 file1 file3
1209create :000000 100644 0000000... 1234567... A file4
1210delete :100644 000000 1234567... 0000000... D file5
1211unmerged :000000 000000 0000000... 0000000... U file6</tt></pre>
1212</div></div>
1213<p>That is, from the left to the right:</p>
1214<ol>
1215<li>
1216<p>
1217a colon.
1218</p>
1219</li>
1220<li>
1221<p>
1222mode for "src"; 000000 if creation or unmerged.
1223</p>
1224</li>
1225<li>
1226<p>
1227a space.
1228</p>
1229</li>
1230<li>
1231<p>
1232mode for "dst"; 000000 if deletion or unmerged.
1233</p>
1234</li>
1235<li>
1236<p>
1237a space.
1238</p>
1239</li>
1240<li>
1241<p>
1242sha1 for "src"; 0{40} if creation or unmerged.
1243</p>
1244</li>
1245<li>
1246<p>
1247a space.
1248</p>
1249</li>
1250<li>
1251<p>
1252sha1 for "dst"; 0{40} if creation, unmerged or "look at work tree".
1253</p>
1254</li>
1255<li>
1256<p>
1257a space.
1258</p>
1259</li>
1260<li>
1261<p>
1262status, followed by optional "score" number.
1263</p>
1264</li>
1265<li>
1266<p>
1267a tab or a NUL when <em>-z</em> option is used.
1268</p>
1269</li>
1270<li>
1271<p>
1272path for "src"
1273</p>
1274</li>
1275<li>
1276<p>
1277a tab or a NUL when <em>-z</em> option is used; only exists for C or R.
1278</p>
1279</li>
1280<li>
1281<p>
1282path for "dst"; only exists for C or R.
1283</p>
1284</li>
1285<li>
1286<p>
1287an LF or a NUL when <em>-z</em> option is used, to terminate the record.
1288</p>
1289</li>
1290</ol>
1291<p>&lt;sha1&gt; is shown as all 0's if a file is new on the filesystem
1292and it is out of sync with the index.</p>
1293<p>Example:</p>
1294<div class="listingblock">
1295<div class="content">
1296<pre><tt>:100644 100644 5be4a4...... 000000...... M file.c</tt></pre>
1297</div></div>
1298<p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters
1299in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>,
1300respectively.</p>
1301</div>
Junio C Hamano67fad6d2007-05-06 08:53:121302<h2>diff format for merges</h2>
1303<div class="sectionbody">
1304<p>"git-diff-tree" and "git-diff-files" can take <em>-c</em> or <em>--cc</em> option
1305to generate diff output also for merge commits. The output differs
1306from the format described above in the following way:</p>
1307<ol>
1308<li>
1309<p>
1310there is a colon for each parent
1311</p>
1312</li>
1313<li>
1314<p>
1315there are more "src" modes and "src" sha1
1316</p>
1317</li>
1318<li>
1319<p>
1320status is concatenated status characters for each parent
1321</p>
1322</li>
1323<li>
1324<p>
1325no optional "score" number
1326</p>
1327</li>
1328<li>
1329<p>
1330single path, only for "dst"
1331</p>
1332</li>
1333</ol>
1334<p>Example:</p>
1335<div class="listingblock">
1336<div class="content">
1337<pre><tt>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</tt></pre>
1338</div></div>
1339<p>Note that <em>combined diff</em> lists only files which were modified from
1340all parents.</p>
1341</div>
Junio C Hamano1a4e8412005-12-27 08:17:231342<h2>Generating patches with -p</h2>
1343<div class="sectionbody">
1344<p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
1345with a <em>-p</em> option, they do not produce the output described above;
Junio C Hamano1c437122006-11-28 02:22:251346instead they produce a patch file. You can customize the creation
1347of such patches via the GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS
1348environment variables.</p>
1349<p>What the -p option produces is slightly different from the traditional
1350diff format.</p>
Junio C Hamano1a4e8412005-12-27 08:17:231351<ol>
1352<li>
1353<p>
Junio C Hamano235a91e2006-01-07 01:13:581354It is preceded with a "git diff" header, that looks like
Junio C Hamano1a4e8412005-12-27 08:17:231355 this:
1356</p>
1357<div class="literalblock">
1358<div class="content">
1359<pre><tt>diff --git a/file1 b/file2</tt></pre>
1360</div></div>
1361<p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is
1362involved. Especially, even for a creation or a deletion,
1363<tt>/dev/null</tt> is _not_ used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p>
1364<p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the
1365name of the source file of the rename/copy and the name of
1366the file that rename/copy produces, respectively.</p>
1367</li>
1368<li>
1369<p>
1370It is followed by one or more extended header lines:
1371</p>
1372<div class="literalblock">
1373<div class="content">
1374<pre><tt>old mode &lt;mode&gt;
1375new mode &lt;mode&gt;
1376deleted file mode &lt;mode&gt;
1377new file mode &lt;mode&gt;
1378copy from &lt;path&gt;
1379copy to &lt;path&gt;
1380rename from &lt;path&gt;
1381rename to &lt;path&gt;
1382similarity index &lt;number&gt;
1383dissimilarity index &lt;number&gt;
1384index &lt;hash&gt;..&lt;hash&gt; &lt;mode&gt;</tt></pre>
1385</div></div>
1386</li>
1387<li>
1388<p>
Junio C Hamanoa053d542006-10-27 09:29:131389TAB, LF, double quote and backslash characters in pathnames
1390 are represented as <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt> and <tt>\\</tt>, respectively.
1391 If there is need for such substitution then the whole
1392 pathname is put in double quotes.
Junio C Hamano1a4e8412005-12-27 08:17:231393</p>
1394</li>
1395</ol>
Junio C Hamanod526ba92007-07-02 00:17:421396<p>The similarity index is the percentage of unchanged lines, and
1397the dissimilarity index is the percentage of changed lines. It
1398is a rounded down integer, followed by a percent sign. The
1399similarity index value of 100% is thus reserved for two equal
1400files, while 100% dissimilarity means that no line from the old
1401file made it into the new one.</p>
Junio C Hamano1a4e8412005-12-27 08:17:231402</div>
Junio C Hamanofb56a962006-01-28 10:38:191403<h2>combined diff format</h2>
1404<div class="sectionbody">
1405<p>git-diff-tree and git-diff-files can take <em>-c</em> or <em>--cc</em> option
1406to produce <em>combined diff</em>, which looks like this:</p>
1407<div class="listingblock">
1408<div class="content">
1409<pre><tt>diff --combined describe.c
Junio C Hamano29f14312006-10-26 08:47:291410index fabadb8,cc95eb0..4866510
1411--- a/describe.c
1412+++ b/describe.c
1413@@@ -98,20 -98,12 +98,20 @@@
1414 return (a_date &gt; b_date) ? -1 : (a_date == b_date) ? 0 : 1;
Junio C Hamanofb56a962006-01-28 10:38:191415 }
1416
1417- static void describe(char *arg)
1418 -static void describe(struct commit *cmit, int last_one)
1419++static void describe(char *arg, int last_one)
1420 {
Junio C Hamano29f14312006-10-26 08:47:291421 + unsigned char sha1[20];
1422 + struct commit *cmit;
1423 struct commit_list *list;
1424 static int initialized = 0;
1425 struct commit_name *n;
1426
1427 + if (get_sha1(arg, sha1) &lt; 0)
1428 + usage(describe_usage);
1429 + cmit = lookup_commit_reference(sha1);
1430 + if (!cmit)
1431 + usage(describe_usage);
1432 +
1433 if (!initialized) {
1434 initialized = 1;
1435 for_each_ref(get_name);</tt></pre>
Junio C Hamanofb56a962006-01-28 10:38:191436</div></div>
Junio C Hamano29f14312006-10-26 08:47:291437<ol>
1438<li>
1439<p>
1440It is preceded with a "git diff" header, that looks like
1441 this (when <em>-c</em> option is used):
1442</p>
1443<div class="literalblock">
1444<div class="content">
1445<pre><tt>diff --combined file</tt></pre>
1446</div></div>
1447<p>or like this (when <em>--cc</em> option is used):</p>
1448<div class="literalblock">
1449<div class="content">
1450<pre><tt>diff --c file</tt></pre>
1451</div></div>
1452</li>
1453<li>
1454<p>
1455It is followed by one or more extended header lines
1456 (this example shows a merge with two parents):
1457</p>
1458<div class="literalblock">
1459<div class="content">
1460<pre><tt>index &lt;hash&gt;,&lt;hash&gt;..&lt;hash&gt;
1461mode &lt;mode&gt;,&lt;mode&gt;..&lt;mode&gt;
1462new file mode &lt;mode&gt;
1463deleted file mode &lt;mode&gt;,&lt;mode&gt;</tt></pre>
1464</div></div>
1465<p>The <tt>mode &lt;mode&gt;,&lt;mode&gt;..&lt;mode&gt;</tt> line appears only if at least one of
Junio C Hamanoee1e4282007-02-04 08:32:041466the &lt;mode&gt; is different from the rest. Extended headers with
Junio C Hamano29f14312006-10-26 08:47:291467information about detected contents movement (renames and
1468copying detection) are designed to work with diff of two
1469&lt;tree-ish&gt; and are not used by combined diff format.</p>
1470</li>
1471<li>
1472<p>
1473It is followed by two-line from-file/to-file header
1474</p>
1475<div class="literalblock">
1476<div class="content">
1477<pre><tt>--- a/file
1478+++ b/file</tt></pre>
1479</div></div>
1480<p>Similar to two-line header for traditional <em>unified</em> diff
1481format, <tt>/dev/null</tt> is used to signal created or deleted
1482files.</p>
1483</li>
1484<li>
1485<p>
1486Chunk header format is modified to prevent people from
1487 accidentally feeding it to <tt>patch -p1</tt>. Combined diff format
1488 was created for review of merge commit changes, and was not
1489 meant for apply. The change is similar to the change in the
1490 extended <em>index</em> header:
1491</p>
1492<div class="literalblock">
1493<div class="content">
1494<pre><tt>@@@ &lt;from-file-range&gt; &lt;from-file-range&gt; &lt;to-file-range&gt; @@@</tt></pre>
1495</div></div>
1496<p>There are (number of parents + 1) <tt>@</tt> characters in the chunk
1497header for combined diff format.</p>
1498</li>
1499</ol>
Junio C Hamanofb56a962006-01-28 10:38:191500<p>Unlike the traditional <em>unified</em> diff format, which shows two
1501files A and B with a single column that has <tt>-</tt> (minus &#8212;
1502appears in A but removed in B), <tt>+</tt> (plus &#8212; missing in A but
Junio C Hamano29f14312006-10-26 08:47:291503added to B), or <tt>" "</tt> (space &#8212; unchanged) prefix, this format
Junio C Hamanofb56a962006-01-28 10:38:191504compares two or more files file1, file2,&#8230; with one file X, and
1505shows how X differs from each of fileN. One column for each of
1506fileN is prepended to the output line to note how X's line is
1507different from it.</p>
1508<p>A <tt>-</tt> character in the column N means that the line appears in
Junio C Hamano29f14312006-10-26 08:47:291509fileN but it does not appear in the result. A <tt>+</tt> character
Junio C Hamanofb56a962006-01-28 10:38:191510in the column N means that the line appears in the last file,
Junio C Hamano29f14312006-10-26 08:47:291511and fileN does not have that line (in other words, the line was
1512added, from the point of view of that parent).</p>
Junio C Hamanofb56a962006-01-28 10:38:191513<p>In the above example output, the function signature was changed
1514from both files (hence two <tt>-</tt> removals from both file1 and
1515file2, plus <tt>++</tt> to mean one line that was added does not appear
1516in either file1 nor file2). Also two other lines are the same
1517from file1 but do not appear in file2 (hence prefixed with <tt> +</tt>).</p>
1518<p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a
1519merge commit with the merge result (i.e. file1..fileN are the
1520parents). When shown by <tt>git diff-files -c</tt>, it compares the
1521two unresolved merge parents with the working tree file
1522(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka
1523"their version").</p>
1524</div>
Junio C Hamano1a4e8412005-12-27 08:17:231525<h2>Author</h2>
1526<div class="sectionbody">
1527<p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;</p>
1528</div>
1529<h2>Documentation</h2>
1530<div class="sectionbody">
1531<p>Documentation by David Greaves, Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p>
1532</div>
1533<h2>GIT</h2>
1534<div class="sectionbody">
1535<p>Part of the <a href="git.html">git(7)</a> suite</p>
1536</div>
1537<div id="footer">
1538<div id="footer-text">
Junio C Hamanod526ba92007-07-02 00:17:421539Last updated 02-Jul-2007 00:16:59 UTC
Junio C Hamano1a4e8412005-12-27 08:17:231540</div>
1541</div>
1542</body>
1543</html>