--- /dev/null
+GIT v1.5.1.5 Release Notes (draft)
+==========================
+
+Fixes since v1.5.1.4
+--------------------
+
+* Bugfixes
+
+ - git-svn was reported to segfault for many people on list and
+ #git; hopefully this has been fixed.
+
+ - "git-svn clone" does not try to minimize the URL
+ (i.e. connect to higher level hierarchy) by default, as this
+ can prevent clone to fail if only part of the repository
+ (e.g. 'trunk') is open to public.
+
+ - "git checkout branch^0" did not detach the head when you are
+ already on 'branch'; backported the fix from the 'master'.
+
+ - "git-config section.var" did not correctly work when
+ existing configuration file had both [section] and [section "name"]
+ next to each other.
+
+ - "git clone ../other-directory" was fooled if the current
+ directory $PWD points at is a symbolic link.
+
+ - (build) tree_entry_extract() function was both static inline
+ and extern, which caused trouble compiling with Forte12
+ compilers on Sun.
+
+ - Many documentation fixes.
+
+--
+exec >/var/tmp/1
+O=v1.5.1.4-26-gb4b20b2
+echo O=`git describe refs/heads/maint`
+git shortlog --no-merges $O..refs/heads/maint
considered a binary or text (the former would be treated by
'git diff' not to produce textual output; the latter can go
through the line endings conversion process in repositories
- with core.autocrlf set), expand and unexpand '$ident$' keyword
+ with core.autocrlf set), expand and unexpand '$Id$' keyword
with blob object name, specify a custom 3-way merge driver,
and specify a custom diff driver. You can also apply
arbitrary filter to contents on check-in/check-out codepath
</dt>\r
<dd>\r
<p>\r
- Update all files that git already knows about. This is what\r
- "git commit -a" does in preparation for making a commit.\r
+ Update only files that git already knows about. This is similar\r
+ to what "git commit -a" does in preparation for making a commit,\r
+ except that the update is limited to paths specified on the\r
+ command line. If no paths are specified, all tracked files are\r
+ updated.\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 08-May-2007 00:32:26 UTC\r
+Last updated 15-May-2007 03:12:35 UTC\r
</div>\r
</div>\r
</body>\r
the index.
-u::
- Update all files that git already knows about. This is what
- "git commit -a" does in preparation for making a commit.
+ Update only files that git already knows about. This is similar
+ to what "git commit -a" does in preparation for making a commit,
+ except that the update is limited to paths specified on the
+ command line. If no paths are specified, all tracked files are
+ updated.
\--::
This option can be used to separate command-line options from
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
<div class="verseblock">\r
-<div class="content"><em>git-am</em> [--signoff] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way]\r
- [--interactive] [--whitespace=<option>] [-C<n>] [-p<n>]\r
+<div class="content"><em>git-am</em> [--signoff] [--dotest=<dir>] [--keep] [--utf8 | --no-utf8]\r
+ [--3way] [--interactive] [--binary]\r
+ [--whitespace=<option>] [-C<n>] [-p<n>]\r
<mbox>…\r
<em>git-am</em> [--skip | --resolved]</div></div>\r
</div>\r
<p>\r
Pass <tt>-u</tt> flag to <tt>git-mailinfo</tt> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>).\r
The proposed commit log message taken from the e-mail\r
- are re-coded into UTF-8 encoding (configuration variable\r
+ is re-coded into UTF-8 encoding (configuration variable\r
<tt>i18n.commitencoding</tt> can be used to specify project's\r
preferred encoding if it is not UTF-8).\r
</p>\r
</p>\r
</dd>\r
<dt>\r
--b, --binary\r
-</dt>\r
-<dd>\r
-<p>\r
- Pass <tt>--allow-binary-replacement</tt> flag to <tt>git-apply</tt>\r
- (see <a href="git-apply.html">git-apply(1)</a>).\r
-</p>\r
-</dd>\r
-<dt>\r
-3, --3way\r
</dt>\r
<dd>\r
When the patch does not apply cleanly, fall back on\r
3-way merge, if the patch records the identity of blobs\r
it is supposed to apply to, and we have those blobs\r
- locally.\r
+ available locally.\r
</p>\r
</dd>\r
<dt>\r
---skip\r
+-b, --binary\r
</dt>\r
<dd>\r
<p>\r
- Skip the current patch. This is only meaningful when\r
- restarting an aborted patch.\r
+ Pass <tt>--allow-binary-replacement</tt> flag to <tt>git-apply</tt>\r
+ (see <a href="git-apply.html">git-apply(1)</a>).\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- This flag is passed to the <tt>git-apply</tt> program that applies\r
+ This flag is passed to the <tt>git-apply</tt> (see <a href="git-apply.html">git-apply(1)</a>)\r
+ program that applies\r
the patch.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- These flags are passed to the <tt>git-apply</tt> program that applies\r
+ These flags are passed to the <tt>git-apply</tt> (see <a href="git-apply.html">git-apply(1)</a>)\r
+ program that applies\r
the patch.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Run interactively, just like git-applymbox.\r
+ Run interactively.\r
+</p>\r
+</dd>\r
+<dt>\r
+--skip\r
+</dt>\r
+<dd>\r
+<p>\r
+ Skip the current patch. This is only meaningful when\r
+ restarting an aborted patch.\r
</p>\r
</dd>\r
<dt>\r
<ol>\r
<li>\r
<p>\r
-skip the current one by re-running the command with <em>--skip</em>\r
+skip the current patch by re-running the command with <em>--skip</em>\r
option.\r
</p>\r
</li>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 17-Apr-2007 08:27:39 UTC\r
+Last updated 15-May-2007 03:12:35 UTC\r
</div>\r
</div>\r
</body>\r
SYNOPSIS
--------
[verse]
-'git-am' [--signoff] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way]
- [--interactive] [--whitespace=<option>] [-C<n>] [-p<n>]
- <mbox>...
+'git-am' [--signoff] [--dotest=<dir>] [--keep] [--utf8 | --no-utf8]
+ [--3way] [--interactive] [--binary]
+ [--whitespace=<option>] [-C<n>] [-p<n>]
+ <mbox>...
'git-am' [--skip | --resolved]
DESCRIPTION
-u, --utf8::
Pass `-u` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]).
The proposed commit log message taken from the e-mail
- are re-coded into UTF-8 encoding (configuration variable
+ is re-coded into UTF-8 encoding (configuration variable
`i18n.commitencoding` can be used to specify project's
preferred encoding if it is not UTF-8).
+
Pass `-n` flag to `git-mailinfo` (see
gitlink:git-mailinfo[1]).
--b, --binary::
- Pass `--allow-binary-replacement` flag to `git-apply`
- (see gitlink:git-apply[1]).
-
-3, --3way::
When the patch does not apply cleanly, fall back on
3-way merge, if the patch records the identity of blobs
it is supposed to apply to, and we have those blobs
- locally.
+ available locally.
---skip::
- Skip the current patch. This is only meaningful when
- restarting an aborted patch.
+-b, --binary::
+ Pass `--allow-binary-replacement` flag to `git-apply`
+ (see gitlink:git-apply[1]).
--whitespace=<option>::
- This flag is passed to the `git-apply` program that applies
+ This flag is passed to the `git-apply` (see gitlink:git-apply[1])
+ program that applies
the patch.
-C<n>, -p<n>::
- These flags are passed to the `git-apply` program that applies
+ These flags are passed to the `git-apply` (see gitlink:git-apply[1])
+ program that applies
the patch.
-i, --interactive::
- Run interactively, just like git-applymbox.
+ Run interactively.
+
+--skip::
+ Skip the current patch. This is only meaningful when
+ restarting an aborted patch.
-r, --resolved::
After a patch failure (e.g. attempting to apply
aborts in the middle, just like 'git-applymbox' does. You can
recover from this in one of two ways:
-. skip the current one by re-running the command with '--skip'
+. skip the current patch by re-running the command with '--skip'
option.
. hand resolve the conflict in the working directory, and update
whitespaces, (3) <em>[</em> up to <em>]</em>, typically <em>[PATCH]</em>, and\r
then prepends "[PATCH] ". This flag forbids this\r
munging, and is most useful when used to read back <em>git\r
- format-patch --mbox</em> output.\r
+ format-patch -k</em> output.\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 17-Apr-2007 08:27:39 UTC\r
+Last updated 15-May-2007 03:12:36 UTC\r
</div>\r
</div>\r
</body>\r
whitespaces, (3) '[' up to ']', typically '[PATCH]', and
then prepends "[PATCH] ". This flag forbids this
munging, and is most useful when used to read back 'git
- format-patch --mbox' output.
+ format-patch -k' output.
-m::
Patches are applied with `git-apply` command, and unless
</dt>\r
<dd>\r
<p>\r
- Pretty-prints the details of a commit. <tt>--pretty</tt>\r
- without an explicit <tt>=<format></tt> defaults to <em>medium</em>.\r
- If the commit is a merge, and if the pretty-format\r
- is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
- inserted before the <em>Author:</em> line. This line begins with\r
- "Merge: " and the sha1s of ancestral commits are printed,\r
- separated by spaces. Note that the listed commits may not\r
- necessarily be the list of the <strong>direct</strong> parent commits if you\r
- have limited your view of history: for example, if you are\r
- only interested in changes related to a certain directory or\r
- file. Here are some additional details for each format:\r
+ Pretty print the contents of the commit logs in a given format,\r
+ where <em><format></em> can be one of <em>oneline</em>, <em>short</em>, <em>medium</em>,\r
+ <em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
+ When left out the format default to <em>medium</em>.\r
</p>\r
+</dd>\r
+<dt>\r
+--encoding[=<encoding>]\r
+</dt>\r
+<dd>\r
+<p>\r
+ The commit objects record the encoding used for the log message\r
+ in their encoding header; this option can be used to tell the\r
+ command to re-code the commit log message in the encoding\r
+ preferred by the user. For non plumbing commands this\r
+ defaults to UTF-8.\r
+</p>\r
+</dd>\r
+<dt>\r
+--no-commit-id\r
+</dt>\r
+<dd>\r
+<p>\r
+ git-diff-tree outputs a line with the commit ID when\r
+ applicable. This flag suppressed the commit ID output.\r
+</p>\r
+</dd>\r
+<dt>\r
+-c\r
+</dt>\r
+<dd>\r
+<p>\r
+ This flag changes the way a merge commit is displayed\r
+ (which means it is useful only when the command is given\r
+ one <tree-ish>, or <em>--stdin</em>). It shows the differences\r
+ from each of the parents to the merge result simultaneously\r
+ instead of showing pairwise diff between a parent and the\r
+ result one at a time (which is what the <em>-m</em> option does).\r
+ Furthermore, it lists only files which were modified\r
+ from all parents.\r
+</p>\r
+</dd>\r
+<dt>\r
+--cc\r
+</dt>\r
+<dd>\r
+<p>\r
+ This flag changes the way a merge commit patch is displayed,\r
+ in a similar way to the <em>-c</em> option. It implies the <em>-c</em>\r
+ and <em>-p</em> options and further compresses the patch output\r
+ by omitting hunks that show differences from only one\r
+ parent, or show the same change from all but one parent\r
+ for an Octopus merge. When this optimization makes all\r
+ hunks disappear, the commit itself and the commit log\r
+ message is not shown, just like in any other "empty diff" case.\r
+</p>\r
+</dd>\r
+<dt>\r
+--always\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show the commit itself and the commit log message even\r
+ if the diff itself is empty.\r
+</p>\r
+</dd>\r
+</dl>\r
+</div>\r
+<h2>PRETTY FORMATS</h2>\r
+<div class="sectionbody">\r
+<p>If the commit is a merge, and if the pretty-format\r
+is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
+inserted before the <em>Author:</em> line. This line begins with\r
+"Merge: " and the sha1s of ancestral commits are printed,\r
+separated by spaces. Note that the listed commits may not\r
+necessarily be the list of the <strong>direct</strong> parent commits if you\r
+have limited your view of history: for example, if you are\r
+only interested in changes related to a certain directory or\r
+file.</p>\r
+<p>Here are some additional details for each format:</p>\r
<ul>\r
<li>\r
<p>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>full commit message></tt></pre>\r
+<pre><tt><full commit message></tt></pre>\r
</div></div>\r
</li>\r
<li>\r
you want to show. It works a little bit like printf format,\r
with the notable exception that you get a newline with <em>%n</em>\r
instead of <em>\n</em>.</p>\r
-</li>\r
-</ul>\r
-</dd>\r
-</dl>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<"</em>\r
+<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
would show something like this:</p>\r
-<p>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
-The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
+The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
+</tt></pre>\r
+</div></div>\r
<p>The placeholders are:</p>\r
<ul>\r
<li>\r
<p>\r
<em>%n</em>: newline\r
</p>\r
-<dl>\r
-<dt>\r
---encoding[=<encoding>]\r
-</dt>\r
-<dd>\r
-<p>\r
- The commit objects record the encoding used for the log message\r
- in their encoding header; this option can be used to tell the\r
- command to re-code the commit log message in the encoding\r
- preferred by the user. For non plumbing commands this\r
- defaults to UTF-8.\r
-</p>\r
-</dd>\r
-<dt>\r
---no-commit-id\r
-</dt>\r
-<dd>\r
-<p>\r
- git-diff-tree outputs a line with the commit ID when\r
- applicable. This flag suppressed the commit ID output.\r
-</p>\r
-</dd>\r
-<dt>\r
--c\r
-</dt>\r
-<dd>\r
-<p>\r
- This flag changes the way a merge commit is displayed\r
- (which means it is useful only when the command is given\r
- one <tree-ish>, or <em>--stdin</em>). It shows the differences\r
- from each of the parents to the merge result simultaneously\r
- instead of showing pairwise diff between a parent and the\r
- result one at a time (which is what the <em>-m</em> option does).\r
- Furthermore, it lists only files which were modified\r
- from all parents.\r
-</p>\r
-</dd>\r
-<dt>\r
---cc\r
-</dt>\r
-<dd>\r
-<p>\r
- This flag changes the way a merge commit patch is displayed,\r
- in a similar way to the <em>-c</em> option. It implies the <em>-c</em>\r
- and <em>-p</em> options and further compresses the patch output\r
- by omitting hunks that show differences from only one\r
- parent, or show the same change from all but one parent\r
- for an Octopus merge. When this optimization makes all\r
- hunks disappear, the commit itself and the commit log\r
- message is not shown, just like in any other "empty diff" case.\r
-</p>\r
-</dd>\r
-<dt>\r
---always\r
-</dt>\r
-<dd>\r
-<p>\r
- Show the commit itself and the commit log message even\r
- if the diff itself is empty.\r
-</p>\r
-</dd>\r
-</dl>\r
+</li>\r
+</ul>\r
</li>\r
</ul>\r
</div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 06-May-2007 08:52:35 UTC\r
+Last updated 15-May-2007 03:12:36 UTC\r
</div>\r
</div>\r
</body>\r
This flag causes "git-diff-tree --stdin" to also show
the commit message before the differences.
-include::pretty-formats.txt[]
+include::pretty-options.txt[]
--no-commit-id::
git-diff-tree outputs a line with the commit ID when
if the diff itself is empty.
+include::pretty-formats.txt[]
+
+
Limiting Output
---------------
If you're only interested in differences in a subset of files, for
</dt>\r
<dd>\r
<p>\r
- Pretty-prints the details of a commit. <tt>--pretty</tt>\r
- without an explicit <tt>=<format></tt> defaults to <em>medium</em>.\r
- If the commit is a merge, and if the pretty-format\r
- is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
- inserted before the <em>Author:</em> line. This line begins with\r
- "Merge: " and the sha1s of ancestral commits are printed,\r
- separated by spaces. Note that the listed commits may not\r
- necessarily be the list of the <strong>direct</strong> parent commits if you\r
- have limited your view of history: for example, if you are\r
- only interested in changes related to a certain directory or\r
- file. Here are some additional details for each format:\r
+ Pretty print the contents of the commit logs in a given format,\r
+ where <em><format></em> can be one of <em>oneline</em>, <em>short</em>, <em>medium</em>,\r
+ <em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
+ When left out the format default to <em>medium</em>.\r
</p>\r
+</dd>\r
+<dt>\r
+--encoding[=<encoding>]\r
+</dt>\r
+<dd>\r
+<p>\r
+ The commit objects record the encoding used for the log message\r
+ in their encoding header; this option can be used to tell the\r
+ command to re-code the commit log message in the encoding\r
+ preferred by the user. For non plumbing commands this\r
+ defaults to UTF-8.\r
+</p>\r
+</dd>\r
+<dt>\r
+-<n>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Limits the number of commits to show.\r
+</p>\r
+</dd>\r
+<dt>\r
+<since>..<until>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show only commits between the named two commits. When\r
+ either <since> or <until> is omitted, it defaults to\r
+ <tt>HEAD</tt>, i.e. the tip of the current branch.\r
+ For a more complete list of ways to spell <since>\r
+ and <until>, see "SPECIFYING REVISIONS" section in\r
+ <a href="git-rev-parse.html">git-rev-parse(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+--first-parent\r
+</dt>\r
+<dd>\r
+<p>\r
+ Follow only the first parent commit upon seeing a merge\r
+ commit. This option gives a better overview of the\r
+ evolution of a particular branch.\r
+</p>\r
+</dd>\r
+<dt>\r
+-p\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show the change the commit introduces in a patch form.\r
+</p>\r
+</dd>\r
+<dt>\r
+-g, --walk-reflogs\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show commits as they were recorded in the reflog. The log contains\r
+ a record about how the tip of a reference was changed.\r
+ See also <a href="git-reflog.html">git-reflog(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+--decorate\r
+</dt>\r
+<dd>\r
+<p>\r
+ Print out the ref names of any commits that are shown.\r
+</p>\r
+</dd>\r
+<dt>\r
+<paths>…\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show only commits that affect the specified paths.\r
+</p>\r
+</dd>\r
+</dl>\r
+</div>\r
+<h2>PRETTY FORMATS</h2>\r
+<div class="sectionbody">\r
+<p>If the commit is a merge, and if the pretty-format\r
+is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
+inserted before the <em>Author:</em> line. This line begins with\r
+"Merge: " and the sha1s of ancestral commits are printed,\r
+separated by spaces. Note that the listed commits may not\r
+necessarily be the list of the <strong>direct</strong> parent commits if you\r
+have limited your view of history: for example, if you are\r
+only interested in changes related to a certain directory or\r
+file.</p>\r
+<p>Here are some additional details for each format:</p>\r
<ul>\r
<li>\r
<p>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>full commit message></tt></pre>\r
+<pre><tt><full commit message></tt></pre>\r
</div></div>\r
</li>\r
<li>\r
you want to show. It works a little bit like printf format,\r
with the notable exception that you get a newline with <em>%n</em>\r
instead of <em>\n</em>.</p>\r
-</li>\r
-</ul>\r
-</dd>\r
-</dl>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<"</em>\r
+<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
would show something like this:</p>\r
-<p>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
-The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
+The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
+</tt></pre>\r
+</div></div>\r
<p>The placeholders are:</p>\r
<ul>\r
<li>\r
<p>\r
<em>%n</em>: newline\r
</p>\r
-<dl>\r
-<dt>\r
---encoding[=<encoding>]\r
-</dt>\r
-<dd>\r
-<p>\r
- The commit objects record the encoding used for the log message\r
- in their encoding header; this option can be used to tell the\r
- command to re-code the commit log message in the encoding\r
- preferred by the user. For non plumbing commands this\r
- defaults to UTF-8.\r
-</p>\r
-</dd>\r
-<dt>\r
--<n>\r
-</dt>\r
-<dd>\r
-<p>\r
- Limits the number of commits to show.\r
-</p>\r
-</dd>\r
-<dt>\r
-<since>..<until>\r
-</dt>\r
-<dd>\r
-<p>\r
- Show only commits between the named two commits. When\r
- either <since> or <until> is omitted, it defaults to\r
- <tt>HEAD</tt>, i.e. the tip of the current branch.\r
- For a more complete list of ways to spell <since>\r
- and <until>, see "SPECIFYING REVISIONS" section in\r
- <a href="git-rev-parse.html">git-rev-parse(1)</a>.\r
-</p>\r
-</dd>\r
-<dt>\r
---first-parent\r
-</dt>\r
-<dd>\r
-<p>\r
- Follow only the first parent commit upon seeing a merge\r
- commit. This option gives a better overview of the\r
- evolution of a particular branch.\r
-</p>\r
-</dd>\r
-<dt>\r
--p\r
-</dt>\r
-<dd>\r
-<p>\r
- Show the change the commit introduces in a patch form.\r
-</p>\r
-</dd>\r
-<dt>\r
--g, --walk-reflogs\r
-</dt>\r
-<dd>\r
-<p>\r
- Show commits as they were recorded in the reflog. The log contains\r
- a record about how the tip of a reference was changed.\r
- See also <a href="git-reflog.html">git-reflog(1)</a>.\r
-</p>\r
-</dd>\r
-<dt>\r
---decorate\r
-</dt>\r
-<dd>\r
-<p>\r
- Print out the ref names of any commits that are shown.\r
-</p>\r
-</dd>\r
-<dt>\r
-<paths>…\r
-</dt>\r
-<dd>\r
-<p>\r
- Show only commits that affect the specified paths.\r
-</p>\r
-</dd>\r
-</dl>\r
+</li>\r
+</ul>\r
</li>\r
</ul>\r
</div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 10-May-2007 23:24:40 UTC\r
+Last updated 15-May-2007 03:12:36 UTC\r
</div>\r
</div>\r
</body>\r
OPTIONS
-------
-include::pretty-formats.txt[]
+include::pretty-options.txt[]
-<n>::
Limits the number of commits to show.
Show only commits that affect the specified paths.
+include::pretty-formats.txt[]
+
+
Examples
--------
git log --no-merges::
whitespaces, (3) <em>[</em> up to <em>]</em>, typically <em>[PATCH]</em>, and\r
then prepends "[PATCH] ". This flag forbids this\r
munging, and is most useful when used to read back <em>git\r
- format-patch --mbox</em> output.\r
+ format-patch -k</em> output.\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 04-Apr-2007 18:33:49 UTC\r
+Last updated 15-May-2007 03:12:37 UTC\r
</div>\r
</div>\r
</body>\r
whitespaces, (3) '[' up to ']', typically '[PATCH]', and
then prepends "[PATCH] ". This flag forbids this
munging, and is most useful when used to read back 'git
- format-patch --mbox' output.
+ format-patch -k' output.
-u::
The commit log message, author name and author email are
</dt>\r
<dd>\r
<p>\r
- Pretty-prints the details of a commit. <tt>--pretty</tt>\r
- without an explicit <tt>=<format></tt> defaults to <em>medium</em>.\r
- If the commit is a merge, and if the pretty-format\r
- is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
- inserted before the <em>Author:</em> line. This line begins with\r
- "Merge: " and the sha1s of ancestral commits are printed,\r
- separated by spaces. Note that the listed commits may not\r
- necessarily be the list of the <strong>direct</strong> parent commits if you\r
- have limited your view of history: for example, if you are\r
- only interested in changes related to a certain directory or\r
- file. Here are some additional details for each format:\r
+ Pretty print the contents of the commit logs in a given format,\r
+ where <em><format></em> can be one of <em>oneline</em>, <em>short</em>, <em>medium</em>,\r
+ <em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
+ When left out the format default to <em>medium</em>.\r
</p>\r
-<ul>\r
-<li>\r
-<p>\r
-<em>oneline</em>\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt><sha1> <title line></tt></pre>\r
-</div></div>\r
-<p>This is designed to be as compact as possible.</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>short</em>\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>commit <sha1>\r
-Author: <author></tt></pre>\r
-</div></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt><title line></tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-<em>medium</em>\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>commit <sha1>\r
-Author: <author>\r
-Date: <date></tt></pre>\r
-</div></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt><title line></tt></pre>\r
-</div></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt><full commit message></tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-<em>full</em>\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>commit <sha1>\r
-Author: <author>\r
-Commit: <committer></tt></pre>\r
-</div></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt><title line></tt></pre>\r
-</div></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt><full commit message></tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-<em>fuller</em>\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>commit <sha1>\r
-Author: <author>\r
-AuthorDate: <date & time>\r
-Commit: <committer>\r
-CommitDate: <date & time></tt></pre>\r
-</div></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt><title line></tt></pre>\r
-</div></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt><full commit message></tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-<em>email</em>\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>From <sha1> <date>\r
-From: <author>\r
-Date: <date & time>\r
-Subject: [PATCH] <title line></tt></pre>\r
-</div></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>full commit message></tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-<em>raw</em>\r
-</p>\r
-<p>The <em>raw</em> format shows the entire commit exactly as\r
-stored in the commit object. Notably, the SHA1s are\r
-displayed in full, regardless of whether --abbrev or\r
---no-abbrev are used, and <em>parents</em> information show the\r
-true parent commits, without taking grafts nor history\r
-simplification into account.</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>format:</em>\r
-</p>\r
-<p>The <em>format:</em> format allows you to specify which information\r
-you want to show. It works a little bit like printf format,\r
-with the notable exception that you get a newline with <em>%n</em>\r
-instead of <em>\n</em>.</p>\r
-</li>\r
-</ul>\r
</dd>\r
-</dl>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<"</em>\r
-would show something like this:</p>\r
-<p>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
-The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<</p>\r
-<p>The placeholders are:</p>\r
-<ul>\r
-<li>\r
-<p>\r
-<em>%H</em>: commit hash\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%h</em>: abbreviated commit hash\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%T</em>: tree hash\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%t</em>: abbreviated tree hash\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%P</em>: parent hashes\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%p</em>: abbreviated parent hashes\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%an</em>: author name\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%ae</em>: author email\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%ad</em>: author date\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%aD</em>: author date, RFC2822 style\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%ar</em>: author date, relative\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%at</em>: author date, UNIX timestamp\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%cn</em>: committer name\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%ce</em>: committer email\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%cd</em>: committer date\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%cD</em>: committer date, RFC2822 style\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%cr</em>: committer date, relative\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%ct</em>: committer date, UNIX timestamp\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%e</em>: encoding\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%s</em>: subject\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%b</em>: body\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%Cred</em>: switch color to red\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%Cgreen</em>: switch color to green\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%Cblue</em>: switch color to blue\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%Creset</em>: reset color\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%m</em>: left, right or boundary mark\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-<em>%n</em>: newline\r
-</p>\r
-<dl>\r
<dt>\r
--encoding[=<encoding>]\r
</dt>\r
</div></div>\r
</dd>\r
</dl>\r
-</li>\r
-</ul>\r
<h3>Diff Formatting</h3>\r
<p>Below are listed options that control the formatting of diff output.\r
Some of them are specific to <a href="git-rev-list.html">git-rev-list(1)</a>, however other diff\r
</dt>\r
<dd>\r
<p>\r
- This flag changes the way a merge commit is displayed. It shows\r
- the differences from each of the parents to the merge result\r
- simultaneously instead of showing pairwise diff between a parent\r
- and the result one at a time. Furthermore, it lists only files\r
- which were modified from all parents.\r
+ This flag changes the way a merge commit is displayed. It shows\r
+ the differences from each of the parents to the merge result\r
+ simultaneously instead of showing pairwise diff between a parent\r
+ and the result one at a time. Furthermore, it lists only files\r
+ which were modified from all parents.\r
+</p>\r
+</dd>\r
+<dt>\r
+--cc\r
+</dt>\r
+<dd>\r
+<p>\r
+ This flag implies the <em>-c</em> options and further compresses the\r
+ patch output by omitting hunks that show differences from only\r
+ one parent, or show the same change from all but one parent for\r
+ an Octopus merge.\r
+</p>\r
+</dd>\r
+<dt>\r
+-r\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show recursive diffs.\r
+</p>\r
+</dd>\r
+<dt>\r
+-t\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show the tree objects in the diff output. This implies <em>-r</em>.\r
+</p>\r
+</dd>\r
+</dl>\r
+<h3>Commit Limiting</h3>\r
+<p>Besides specifying a range of commits that should be listed using the\r
+special notations explained in the description, additional commit\r
+limiting may be applied.</p>\r
+<dl>\r
+<dt>\r
+-n <em>number</em>, --max-count=<em>number</em>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Limit the number of commits output.\r
+</p>\r
+</dd>\r
+<dt>\r
+--skip=<em>number</em>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Skip <em>number</em> commits before starting to show the commit output.\r
+</p>\r
+</dd>\r
+<dt>\r
+--since=<em>date</em>, --after=<em>date</em>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show commits more recent than a specific date.\r
+</p>\r
+</dd>\r
+<dt>\r
+--until=<em>date</em>, --before=<em>date</em>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show commits older than a specific date.\r
+</p>\r
+</dd>\r
+<dt>\r
+--max-age=<em>timestamp</em>, --min-age=<em>timestamp</em>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Limit the commits output to specified time range.\r
+</p>\r
+</dd>\r
+<dt>\r
+--author=<em>pattern</em>, --committer=<em>pattern</em>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Limit the commits output to ones with author/committer\r
+ header lines that match the specified pattern.\r
+</p>\r
+</dd>\r
+<dt>\r
+--grep=<em>pattern</em>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Limit the commits output to ones with log message that\r
+ matches the specified pattern.\r
+</p>\r
+</dd>\r
+<dt>\r
+--remove-empty\r
+</dt>\r
+<dd>\r
+<p>\r
+ Stop when a given path disappears from the tree.\r
+</p>\r
+</dd>\r
+<dt>\r
+--no-merges\r
+</dt>\r
+<dd>\r
+<p>\r
+ Do not print commits with more than one parent.\r
+</p>\r
+</dd>\r
+<dt>\r
+--not\r
+</dt>\r
+<dd>\r
+<p>\r
+ Reverses the meaning of the <em>^</em> prefix (or lack thereof)\r
+ for all following revision specifiers, up to the next <em>--not</em>.\r
+</p>\r
+</dd>\r
+<dt>\r
+--all\r
+</dt>\r
+<dd>\r
+<p>\r
+ Pretend as if all the refs in <tt>$GIT_DIR/refs/</tt> are listed on the\r
+ command line as <em><commit></em>.\r
+</p>\r
+</dd>\r
+<dt>\r
+--stdin\r
+</dt>\r
+<dd>\r
+<p>\r
+ In addition to the <em><commit></em> listed on the command\r
+ line, read them from the standard input.\r
+</p>\r
+</dd>\r
+<dt>\r
+--cherry-pick\r
+</dt>\r
+<dd>\r
+<p>\r
+ Omit any commit that introduces the same change as\r
+ another commit on the "other side" when the set of\r
+ commits are limited with symmetric difference.<br />\r
+For example, if you have two branches, <tt>A</tt> and <tt>B</tt>, a usual way\r
+to list all commits on only one side of them is with\r
+<tt>--left-right</tt>, like the example above in the description of\r
+that option. It however shows the commits that were cherry-picked\r
+from the other branch (for example, "3rd on b" may be cherry-picked\r
+from branch A). With this option, such pairs of commits are\r
+excluded from the output.\r
+</p>\r
+</dd>\r
+<dt>\r
+-g, --walk-reflogs\r
+</dt>\r
+<dd>\r
+<p>\r
+ Instead of walking the commit ancestry chain, walk\r
+ reflog entries from the most recent one to older ones.\r
+ When this option is used you cannot specify commits to\r
+ exclude (that is, <em>^commit</em>, <em>commit1..commit2</em>,\r
+ nor <em>commit1…commit2</em> notations cannot be used).<br />\r
+With <em>--pretty</em> format other than oneline (for obvious reasons),\r
+this causes the output to have two extra lines of information\r
+used in the output. When the starting commit is specified as\r
+instead. Under <em>--pretty=oneline</em>, the commit message is\r
+prefixed with this information on the same line.\r
+</p>\r
+</dd>\r
+<dt>\r
+--merge\r
+</dt>\r
+<dd>\r
+<p>\r
+ After a failed merge, show refs that touch files having a\r
+ conflict and don't exist on all heads to merge.\r
+</p>\r
+</dd>\r
+<dt>\r
+--boundary\r
+</dt>\r
+<dd>\r
+<p>\r
+ Output uninteresting commits at the boundary, which are usually\r
+ not shown.\r
</p>\r
</dd>\r
<dt>\r
---cc\r
+--dense, --sparse\r
</dt>\r
<dd>\r
<p>\r
- This flag implies the <em>-c</em> options and further compresses the\r
- patch output by omitting hunks that show differences from only\r
- one parent, or show the same change from all but one parent for\r
- an Octopus merge.\r
+When optional paths are given, the default behaviour (<em>--dense</em>) is to\r
+only output commits that changes at least one of them, and also ignore\r
+merges that do not touch the given paths.\r
</p>\r
+<p>Use the <em>--sparse</em> flag to makes the command output all eligible commits\r
+(still subject to count and age limitation), but apply merge\r
+simplification nevertheless.</p>\r
</dd>\r
<dt>\r
--r\r
+--bisect\r
</dt>\r
<dd>\r
<p>\r
- Show recursive diffs.\r
+Limit output to the one commit object which is roughly halfway between\r
+the included and excluded commits. Thus, if\r
</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt> $ git-rev-list --bisect foo ^bar ^baz</tt></pre>\r
+</div></div>\r
+<p>outputs <em>midpoint</em>, the output of the two commands</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt> $ git-rev-list foo ^midpoint\r
+ $ git-rev-list midpoint ^bar ^baz</tt></pre>\r
+</div></div>\r
+<p>would be of roughly the same length. Finding the change which\r
+introduces a regression is thus reduced to a binary search: repeatedly\r
+generate and test new 'midpoint's until the commit chain is of length\r
+one.</p>\r
</dd>\r
<dt>\r
--t\r
+--bisect-vars\r
</dt>\r
<dd>\r
<p>\r
- Show the tree objects in the diff output. This implies <em>-r</em>.\r
+This calculates the same as <tt>--bisect</tt>, but outputs text ready\r
+to be eval'ed by the shell. These lines will assign the name of\r
+the midpoint revision to the variable <tt>bisect_rev</tt>, and the\r
+expected number of commits to be tested after <tt>bisect_rev</tt> is\r
+tested to <tt>bisect_nr</tt>, the expected number of commits to be\r
+tested if <tt>bisect_rev</tt> turns out to be good to <tt>bisect_good</tt>,\r
+the expected number of commits to be tested if <tt>bisect_rev</tt>\r
+turns out to be bad to <tt>bisect_bad</tt>, and the number of commits\r
+we are bisecting right now to <tt>bisect_all</tt>.\r
</p>\r
</dd>\r
</dl>\r
-<h3>Commit Limiting</h3>\r
-<p>Besides specifying a range of commits that should be listed using the\r
-special notations explained in the description, additional commit\r
-limiting may be applied.</p>\r
+<h3>Commit Ordering</h3>\r
+<p>By default, the commits are shown in reverse chronological order.</p>\r
<dl>\r
<dt>\r
--n <em>number</em>, --max-count=<em>number</em>\r
+--topo-order\r
</dt>\r
<dd>\r
<p>\r
- Limit the number of commits output.\r
+ This option makes them appear in topological order (i.e.\r
+ descendant commits are shown before their parents).\r
</p>\r
</dd>\r
<dt>\r
---skip=<em>number</em>\r
+--date-order\r
</dt>\r
<dd>\r
<p>\r
- Skip <em>number</em> commits before starting to show the commit output.\r
+ This option is similar to <em>--topo-order</em> in the sense that no\r
+ parent comes before all of its children, but otherwise things\r
+ are still ordered in the commit timestamp order.\r
</p>\r
</dd>\r
<dt>\r
---since=<em>date</em>, --after=<em>date</em>\r
+--reverse\r
</dt>\r
<dd>\r
<p>\r
- Show commits more recent than a specific date.\r
+ Output the commits in reverse order.\r
</p>\r
</dd>\r
+</dl>\r
+<h3>Object Traversal</h3>\r
+<p>These options are mostly targeted for packing of git repositories.</p>\r
+<dl>\r
<dt>\r
---until=<em>date</em>, --before=<em>date</em>\r
+--objects\r
</dt>\r
<dd>\r
<p>\r
- Show commits older than a specific date.\r
+ Print the object IDs of any object referenced by the listed\r
+ commits. <em>git-rev-list --objects foo ^bar</em> thus means "send me\r
+ all object IDs which I need to download if I have the commit\r
+ object <em>bar</em>, but not <em>foo</em>".\r
</p>\r
</dd>\r
<dt>\r
---max-age=<em>timestamp</em>, --min-age=<em>timestamp</em>\r
+--objects-edge\r
</dt>\r
<dd>\r
<p>\r
- Limit the commits output to specified time range.\r
+ Similar to <em>--objects</em>, but also print the IDs of excluded\r
+ commits prefixed with a "-" character. This is used by\r
+ <a href="git-pack-objects.html">git-pack-objects(1)</a> to build "thin" pack, which records\r
+ objects in deltified form based on objects contained in these\r
+ excluded commits to reduce network traffic.\r
</p>\r
</dd>\r
<dt>\r
---author=<em>pattern</em>, --committer=<em>pattern</em>\r
+--unpacked\r
</dt>\r
<dd>\r
<p>\r
- Limit the commits output to ones with author/committer\r
- header lines that match the specified pattern.\r
+ Only useful with <em>--objects</em>; print the object IDs that are not\r
+ in packs.\r
+</p>\r
+</dd>\r
+</dl>\r
+</div>\r
+<h2>PRETTY FORMATS</h2>\r
+<div class="sectionbody">\r
+<p>If the commit is a merge, and if the pretty-format\r
+is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
+inserted before the <em>Author:</em> line. This line begins with\r
+"Merge: " and the sha1s of ancestral commits are printed,\r
+separated by spaces. Note that the listed commits may not\r
+necessarily be the list of the <strong>direct</strong> parent commits if you\r
+have limited your view of history: for example, if you are\r
+only interested in changes related to a certain directory or\r
+file.</p>\r
+<p>Here are some additional details for each format:</p>\r
+<ul>\r
+<li>\r
+<p>\r
+<em>oneline</em>\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><sha1> <title line></tt></pre>\r
+</div></div>\r
+<p>This is designed to be as compact as possible.</p>\r
+</li>\r
+<li>\r
+<p>\r
+<em>short</em>\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>commit <sha1>\r
+Author: <author></tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><title line></tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<em>medium</em>\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>commit <sha1>\r
+Author: <author>\r
+Date: <date></tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><title line></tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><full commit message></tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<em>full</em>\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>commit <sha1>\r
+Author: <author>\r
+Commit: <committer></tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><title line></tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><full commit message></tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<em>fuller</em>\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>commit <sha1>\r
+Author: <author>\r
+AuthorDate: <date & time>\r
+Commit: <committer>\r
+CommitDate: <date & time></tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><title line></tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><full commit message></tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<em>email</em>\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>From <sha1> <date>\r
+From: <author>\r
+Date: <date & time>\r
+Subject: [PATCH] <title line></tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt><full commit message></tt></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+<em>raw</em>\r
+</p>\r
+<p>The <em>raw</em> format shows the entire commit exactly as\r
+stored in the commit object. Notably, the SHA1s are\r
+displayed in full, regardless of whether --abbrev or\r
+--no-abbrev are used, and <em>parents</em> information show the\r
+true parent commits, without taking grafts nor history\r
+simplification into account.</p>\r
+</li>\r
+<li>\r
+<p>\r
+<em>format:</em>\r
+</p>\r
+<p>The <em>format:</em> format allows you to specify which information\r
+you want to show. It works a little bit like printf format,\r
+with the notable exception that you get a newline with <em>%n</em>\r
+instead of <em>\n</em>.</p>\r
+<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
+would show something like this:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
+The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
+</tt></pre>\r
+</div></div>\r
+<p>The placeholders are:</p>\r
+<ul>\r
+<li>\r
+<p>\r
+<em>%H</em>: commit hash\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<em>%h</em>: abbreviated commit hash\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<em>%T</em>: tree hash\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<em>%t</em>: abbreviated tree hash\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<em>%P</em>: parent hashes\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<em>%p</em>: abbreviated parent hashes\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<em>%an</em>: author name\r
</p>\r
-</dd>\r
-<dt>\r
---grep=<em>pattern</em>\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Limit the commits output to ones with log message that\r
- matches the specified pattern.\r
+<em>%ae</em>: author email\r
</p>\r
-</dd>\r
-<dt>\r
---remove-empty\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Stop when a given path disappears from the tree.\r
+<em>%ad</em>: author date\r
</p>\r
-</dd>\r
-<dt>\r
---no-merges\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Do not print commits with more than one parent.\r
+<em>%aD</em>: author date, RFC2822 style\r
</p>\r
-</dd>\r
-<dt>\r
---not\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Reverses the meaning of the <em>^</em> prefix (or lack thereof)\r
- for all following revision specifiers, up to the next <em>--not</em>.\r
+<em>%ar</em>: author date, relative\r
</p>\r
-</dd>\r
-<dt>\r
---all\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Pretend as if all the refs in <tt>$GIT_DIR/refs/</tt> are listed on the\r
- command line as <em><commit></em>.\r
+<em>%at</em>: author date, UNIX timestamp\r
</p>\r
-</dd>\r
-<dt>\r
---stdin\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- In addition to the <em><commit></em> listed on the command\r
- line, read them from the standard input.\r
+<em>%cn</em>: committer name\r
</p>\r
-</dd>\r
-<dt>\r
---cherry-pick\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Omit any commit that introduces the same change as\r
- another commit on the "other side" when the set of\r
- commits are limited with symmetric difference.<br />\r
-For example, if you have two branches, <tt>A</tt> and <tt>B</tt>, a usual way\r
-to list all commits on only one side of them is with\r
-<tt>--left-right</tt>, like the example above in the description of\r
-that option. It however shows the commits that were cherry-picked\r
-from the other branch (for example, "3rd on b" may be cherry-picked\r
-from branch A). With this option, such pairs of commits are\r
-excluded from the output.\r
+<em>%ce</em>: committer email\r
</p>\r
-</dd>\r
-<dt>\r
--g, --walk-reflogs\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Instead of walking the commit ancestry chain, walk\r
- reflog entries from the most recent one to older ones.\r
- When this option is used you cannot specify commits to\r
- exclude (that is, <em>^commit</em>, <em>commit1..commit2</em>,\r
- nor <em>commit1…commit2</em> notations cannot be used).<br />\r
-With <em>--pretty</em> format other than oneline (for obvious reasons),\r
-this causes the output to have two extra lines of information\r
-used in the output. When the starting commit is specified as\r
-instead. Under <em>--pretty=oneline</em>, the commit message is\r
-prefixed with this information on the same line.\r
+<em>%cd</em>: committer date\r
</p>\r
-</dd>\r
-<dt>\r
---merge\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- After a failed merge, show refs that touch files having a\r
- conflict and don't exist on all heads to merge.\r
+<em>%cD</em>: committer date, RFC2822 style\r
</p>\r
-</dd>\r
-<dt>\r
---boundary\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Output uninteresting commits at the boundary, which are usually\r
- not shown.\r
+<em>%cr</em>: committer date, relative\r
</p>\r
-</dd>\r
-<dt>\r
---dense, --sparse\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
-When optional paths are given, the default behaviour (<em>--dense</em>) is to\r
-only output commits that changes at least one of them, and also ignore\r
-merges that do not touch the given paths.\r
+<em>%ct</em>: committer date, UNIX timestamp\r
</p>\r
-<p>Use the <em>--sparse</em> flag to makes the command output all eligible commits\r
-(still subject to count and age limitation), but apply merge\r
-simplification nevertheless.</p>\r
-</dd>\r
-<dt>\r
---bisect\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
-Limit output to the one commit object which is roughly halfway between\r
-the included and excluded commits. Thus, if\r
+<em>%e</em>: encoding\r
</p>\r
-<div class="listingblock">\r
-<div class="content">\r
-<pre><tt> $ git-rev-list --bisect foo ^bar ^baz</tt></pre>\r
-</div></div>\r
-<p>outputs <em>midpoint</em>, the output of the two commands</p>\r
-<div class="listingblock">\r
-<div class="content">\r
-<pre><tt> $ git-rev-list foo ^midpoint\r
- $ git-rev-list midpoint ^bar ^baz</tt></pre>\r
-</div></div>\r
-<p>would be of roughly the same length. Finding the change which\r
-introduces a regression is thus reduced to a binary search: repeatedly\r
-generate and test new 'midpoint's until the commit chain is of length\r
-one.</p>\r
-</dd>\r
-<dt>\r
---bisect-vars\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
-This calculates the same as <tt>--bisect</tt>, but outputs text ready\r
-to be eval'ed by the shell. These lines will assign the name of\r
-the midpoint revision to the variable <tt>bisect_rev</tt>, and the\r
-expected number of commits to be tested after <tt>bisect_rev</tt> is\r
-tested to <tt>bisect_nr</tt>, the expected number of commits to be\r
-tested if <tt>bisect_rev</tt> turns out to be good to <tt>bisect_good</tt>,\r
-the expected number of commits to be tested if <tt>bisect_rev</tt>\r
-turns out to be bad to <tt>bisect_bad</tt>, and the number of commits\r
-we are bisecting right now to <tt>bisect_all</tt>.\r
+<em>%s</em>: subject\r
</p>\r
-</dd>\r
-</dl>\r
-<h3>Commit Ordering</h3>\r
-<p>By default, the commits are shown in reverse chronological order.</p>\r
-<dl>\r
-<dt>\r
---topo-order\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- This option makes them appear in topological order (i.e.\r
- descendant commits are shown before their parents).\r
+<em>%b</em>: body\r
</p>\r
-</dd>\r
-<dt>\r
---date-order\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- This option is similar to <em>--topo-order</em> in the sense that no\r
- parent comes before all of its children, but otherwise things\r
- are still ordered in the commit timestamp order.\r
+<em>%Cred</em>: switch color to red\r
</p>\r
-</dd>\r
-<dt>\r
---reverse\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Output the commits in reverse order.\r
+<em>%Cgreen</em>: switch color to green\r
</p>\r
-</dd>\r
-</dl>\r
-<h3>Object Traversal</h3>\r
-<p>These options are mostly targeted for packing of git repositories.</p>\r
-<dl>\r
-<dt>\r
---objects\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Print the object IDs of any object referenced by the listed\r
- commits. <em>git-rev-list --objects foo ^bar</em> thus means "send me\r
- all object IDs which I need to download if I have the commit\r
- object <em>bar</em>, but not <em>foo</em>".\r
+<em>%Cblue</em>: switch color to blue\r
</p>\r
-</dd>\r
-<dt>\r
---objects-edge\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Similar to <em>--objects</em>, but also print the IDs of excluded\r
- commits prefixed with a "-" character. This is used by\r
- <a href="git-pack-objects.html">git-pack-objects(1)</a> to build "thin" pack, which records\r
- objects in deltified form based on objects contained in these\r
- excluded commits to reduce network traffic.\r
+<em>%Creset</em>: reset color\r
</p>\r
-</dd>\r
-<dt>\r
---unpacked\r
-</dt>\r
-<dd>\r
+</li>\r
+<li>\r
<p>\r
- Only useful with <em>--objects</em>; print the object IDs that are not\r
- in packs.\r
+<em>%m</em>: left, right or boundary mark\r
</p>\r
-</dd>\r
-</dl>\r
+</li>\r
+<li>\r
+<p>\r
+<em>%n</em>: newline\r
+</p>\r
+</li>\r
+</ul>\r
+</li>\r
+</ul>\r
</div>\r
<h2>Author</h2>\r
<div class="sectionbody">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 26-Apr-2007 07:19:26 UTC\r
+Last updated 15-May-2007 03:12:37 UTC\r
</div>\r
</div>\r
</body>\r
more specialized family of commit log tools: gitlink:git-log[1],
gitlink:git-show[1], and gitlink:git-whatchanged[1]
-include::pretty-formats.txt[]
+include::pretty-options.txt[]
--relative-date::
Only useful with '--objects'; print the object IDs that are not
in packs.
+
+include::pretty-formats.txt[]
+
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
</dt>\r
<dd>\r
<p>\r
- Pretty-prints the details of a commit. <tt>--pretty</tt>\r
- without an explicit <tt>=<format></tt> defaults to <em>medium</em>.\r
- If the commit is a merge, and if the pretty-format\r
- is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
- inserted before the <em>Author:</em> line. This line begins with\r
- "Merge: " and the sha1s of ancestral commits are printed,\r
- separated by spaces. Note that the listed commits may not\r
- necessarily be the list of the <strong>direct</strong> parent commits if you\r
- have limited your view of history: for example, if you are\r
- only interested in changes related to a certain directory or\r
- file. Here are some additional details for each format:\r
+ Pretty print the contents of the commit logs in a given format,\r
+ where <em><format></em> can be one of <em>oneline</em>, <em>short</em>, <em>medium</em>,\r
+ <em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
+ When left out the format default to <em>medium</em>.\r
</p>\r
+</dd>\r
+<dt>\r
+--encoding[=<encoding>]\r
+</dt>\r
+<dd>\r
+<p>\r
+ The commit objects record the encoding used for the log message\r
+ in their encoding header; this option can be used to tell the\r
+ command to re-code the commit log message in the encoding\r
+ preferred by the user. For non plumbing commands this\r
+ defaults to UTF-8.\r
+</p>\r
+</dd>\r
+</dl>\r
+</div>\r
+<h2>PRETTY FORMATS</h2>\r
+<div class="sectionbody">\r
+<p>If the commit is a merge, and if the pretty-format\r
+is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
+inserted before the <em>Author:</em> line. This line begins with\r
+"Merge: " and the sha1s of ancestral commits are printed,\r
+separated by spaces. Note that the listed commits may not\r
+necessarily be the list of the <strong>direct</strong> parent commits if you\r
+have limited your view of history: for example, if you are\r
+only interested in changes related to a certain directory or\r
+file.</p>\r
+<p>Here are some additional details for each format:</p>\r
<ul>\r
<li>\r
<p>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>full commit message></tt></pre>\r
+<pre><tt><full commit message></tt></pre>\r
</div></div>\r
</li>\r
<li>\r
you want to show. It works a little bit like printf format,\r
with the notable exception that you get a newline with <em>%n</em>\r
instead of <em>\n</em>.</p>\r
-</li>\r
-</ul>\r
-</dd>\r
-</dl>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<"</em>\r
+<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
would show something like this:</p>\r
-<p>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
-The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
+The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
+</tt></pre>\r
+</div></div>\r
<p>The placeholders are:</p>\r
<ul>\r
<li>\r
<p>\r
<em>%n</em>: newline\r
</p>\r
-<dl>\r
-<dt>\r
---encoding[=<encoding>]\r
-</dt>\r
-<dd>\r
-<p>\r
- The commit objects record the encoding used for the log message\r
- in their encoding header; this option can be used to tell the\r
- command to re-code the commit log message in the encoding\r
- preferred by the user. For non plumbing commands this\r
- defaults to UTF-8.\r
-</p>\r
-</dd>\r
-</dl>\r
+</li>\r
+</ul>\r
</li>\r
</ul>\r
</div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 14-Apr-2007 16:21:46 UTC\r
+Last updated 15-May-2007 03:12:38 UTC\r
</div>\r
</div>\r
</body>\r
For a more complete list of ways to spell object names, see
"SPECIFYING REVISIONS" section in gitlink:git-rev-parse[1].
+include::pretty-options.txt[]
+
+
include::pretty-formats.txt[]
upon checkout.</p>\r
<h4><tt>ident</tt></h4>\r
<p>When the attribute <tt>ident</tt> is set to a path, git replaces\r
-<tt>$ident$</tt> in the blob object with <tt>$ident:</tt>, followed by\r
+<tt>$Id$</tt> in the blob object with <tt>$Id:</tt>, followed by\r
40-character hexadecimal blob object name, followed by a dollar\r
sign <tt>$</tt> upon checkout. Any byte sequence that begins with\r
-<tt>$ident:</tt> and ends with <tt>$</tt> in the worktree file is replaced\r
-with <tt>$ident$</tt> upon check-in.</p>\r
+<tt>$Id:</tt> and ends with <tt>$</tt> in the worktree file is replaced\r
+with <tt>$Id$</tt> upon check-in.</p>\r
<h4>Interaction between checkin/checkout attributes</h4>\r
<p>In the check-in codepath, the worktree file is first converted\r
with <tt>ident</tt> (if specified), and then with <tt>crlf</tt> (again, if\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 29-Apr-2007 18:29:52 UTC\r
+Last updated 15-May-2007 03:12:38 UTC\r
</div>\r
</div>\r
</body>\r
^^^^^^^
When the attribute `ident` is set to a path, git replaces
-`$ident$` in the blob object with `$ident:`, followed by
+`$Id$` in the blob object with `$Id:`, followed by
40-character hexadecimal blob object name, followed by a dollar
sign `$` upon checkout. Any byte sequence that begins with
-`$ident:` and ends with `$` in the worktree file is replaced
-with `$ident$` upon check-in.
+`$Id:` and ends with `$` in the worktree file is replaced
+with `$Id$` upon check-in.
Interaction between checkin/checkout attributes
---pretty[='<format>']::
-
- Pretty-prints the details of a commit. `--pretty`
- without an explicit `=<format>` defaults to 'medium'.
- If the commit is a merge, and if the pretty-format
- is not 'oneline', 'email' or 'raw', an additional line is
- inserted before the 'Author:' line. This line begins with
- "Merge: " and the sha1s of ancestral commits are printed,
- separated by spaces. Note that the listed commits may not
- necessarily be the list of the *direct* parent commits if you
- have limited your view of history: for example, if you are
- only interested in changes related to a certain directory or
- file. Here are some additional details for each format:
-
- * 'oneline'
+PRETTY FORMATS
+--------------
+
+If the commit is a merge, and if the pretty-format
+is not 'oneline', 'email' or 'raw', an additional line is
+inserted before the 'Author:' line. This line begins with
+"Merge: " and the sha1s of ancestral commits are printed,
+separated by spaces. Note that the listed commits may not
+necessarily be the list of the *direct* parent commits if you
+have limited your view of history: for example, if you are
+only interested in changes related to a certain directory or
+file.
+
+Here are some additional details for each format:
+
+* 'oneline'
<sha1> <title line>
+
This is designed to be as compact as possible.
- * 'short'
+* 'short'
commit <sha1>
Author: <author>
<title line>
- * 'medium'
+* 'medium'
commit <sha1>
Author: <author>
<full commit message>
- * 'full'
+* 'full'
commit <sha1>
Author: <author>
<full commit message>
- * 'fuller'
+* 'fuller'
commit <sha1>
Author: <author>
<full commit message>
-
- * 'email'
+* 'email'
From <sha1> <date>
From: <author>
Date: <date & time>
Subject: [PATCH] <title line>
- full commit message>
-
+ <full commit message>
- * 'raw'
+* 'raw'
+
The 'raw' format shows the entire commit exactly as
stored in the commit object. Notably, the SHA1s are
true parent commits, without taking grafts nor history
simplification into account.
- * 'format:'
+* 'format:'
+
The 'format:' format allows you to specify which information
you want to show. It works a little bit like printf format,
with the notable exception that you get a newline with '%n'
instead of '\n'.
-
-E.g, 'format:"The author of %h was %an, %ar%nThe title was >>%s<<"'
++
+E.g, 'format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"'
would show something like this:
-
++
+-------
The author of fe6e0ee was Junio C Hamano, 23 hours ago
The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<
+--------
++
The placeholders are:
- '%H': commit hash
- '%m': left, right or boundary mark
- '%n': newline
-
---encoding[=<encoding>]::
- The commit objects record the encoding used for the log message
- in their encoding header; this option can be used to tell the
- command to re-code the commit log message in the encoding
- preferred by the user. For non plumbing commands this
- defaults to UTF-8.
-
--- /dev/null
+--pretty[='<format>']::
+
+ Pretty print the contents of the commit logs in a given format,
+ where '<format>' can be one of 'oneline', 'short', 'medium',
+ 'full', 'fuller', 'email', 'raw' and 'format:<string>'.
+ When left out the format default to 'medium'.
+
+--encoding[=<encoding>]::
+ The commit objects record the encoding used for the log message
+ in their encoding header; this option can be used to tell the
+ command to re-code the commit log message in the encoding
+ preferred by the user. For non plumbing commands this
+ defaults to UTF-8.
+