Autogenerated HTML docs for v1.6.0.1-196-g0191
authorJunio C Hamano <junio@hera.kernel.org>
Wed, 3 Sep 2008 05:20:31 +0000 (05:20 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Wed, 3 Sep 2008 05:20:31 +0000 (05:20 +0000)
17 files changed:
diff-options.txt
git-commit.html
git-commit.txt
git-diff-files.html
git-diff-index.html
git-diff-tree.html
git-diff.html
git-for-each-ref.html
git-for-each-ref.txt
git-format-patch.html
git-help.html
git-help.txt
git-log.html
git-rev-list.html
git-stash.html
git-stash.txt
rev-list-options.txt

index 17593864041189b7d073b05627cfc5cfee1301da..6e268326da9e34882313b7b3d094a617c3966d29 100644 (file)
@@ -59,12 +59,11 @@ endif::git-format-patch[]
        lines.
 
 --dirstat[=limit]::
-       Output only the sub-directories that are impacted by a diff,
-       and to what degree they are impacted.  You can override the
-       default cut-off in percent (3) by "--dirstat=limit".  If you
-       want to enable "cumulative" directory statistics, you can use
-       the "--cumulative" flag, which adds up percentages recursively
-       even when they have been already reported for a sub-directory.
+       Output the distribution of relative amount of changes (number of lines added or
+       removed) for each sub-directory. Directories with changes below
+       a cut-off percent (3% by default) are not shown. The cut-off percent
+       can be set with "--dirstat=limit". Changes in a child directory is not
+       counted for the parent directory, unless "--cumulative" is used.
 
 --summary::
        Output a condensed summary of extended header information
index 1b21a4c8b4507b35510ea771c837febe162ae02b..581c5235f07f916045663d20081084004710ba77 100644 (file)
@@ -434,8 +434,10 @@ that, you can recover from it with <em>git-reset</em>.</p></div>
 </dt>\r
 <dd>\r
 <p>\r
-        Override the author name used in the commit.  Use\r
-        <tt>A U Thor &lt;author@example.com&gt;</tt> format.\r
+        Override the author name used in the commit.  You can use the\r
+        standard <tt>A U Thor &lt;author@example.com&gt;</tt> format.  Otherwise,\r
+        an existing commit that matches the given string and its author\r
+        name is used.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -861,7 +863,7 @@ Junio C Hamano &lt;gitster@pobox.com&gt;</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-22 09:19:05 UTC\r
+Last updated 2008-09-03 05:19:53 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 0e25bb862704eee4a22fe5349c04823d14ea9cba..eb05b0f49b0c513581150415d1a4e679d7bfbea6 100644 (file)
@@ -75,8 +75,10 @@ OPTIONS
        read the message from the standard input.
 
 --author=<author>::
-       Override the author name used in the commit.  Use
-       `A U Thor <author@example.com>` format.
+       Override the author name used in the commit.  You can use the
+       standard `A U Thor <author@example.com>` format.  Otherwise,
+       an existing commit that matches the given string and its author
+       name is used.
 
 -m <msg>::
 --message=<msg>::
index 1257abea7cfc6743180248aef2e493fe63905ed5..8bc500a22bb04d9b3a115f1dc700686c08110205 100644 (file)
@@ -421,12 +421,11 @@ same as for <em>git-diff-index</em> and <em>git-diff-tree</em>.</p></div>
 </dt>\r
 <dd>\r
 <p>\r
-        Output only the sub-directories that are impacted by a diff,\r
-        and to what degree they are impacted.  You can override the\r
-        default cut-off in percent (3) by "--dirstat=limit".  If you\r
-        want to enable "cumulative" directory statistics, you can use\r
-        the "--cumulative" flag, which adds up percentages recursively\r
-        even when they have been already reported for a sub-directory.\r
+        Output the distribution of relative amount of changes (number of lines added or\r
+        removed) for each sub-directory. Directories with changes below\r
+        a cut-off percent (3% by default) are not shown. The cut-off percent\r
+        can be set with "--dirstat=limit". Changes in a child directory is not\r
+        counted for the parent directory, unless "--cumulative" is used.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -1339,7 +1338,7 @@ the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p></
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-20 09:13:28 UTC\r
+Last updated 2008-09-03 05:19:53 UTC\r
 </div>\r
 </div>\r
 </body>\r
index d004fc8fb954471e2f395e8452914f8989eaf090..fa3ddb4531332231bdd671444fb25b3fe51ea726 100644 (file)
@@ -422,12 +422,11 @@ entries in the index are compared.</p></div>
 </dt>\r
 <dd>\r
 <p>\r
-        Output only the sub-directories that are impacted by a diff,\r
-        and to what degree they are impacted.  You can override the\r
-        default cut-off in percent (3) by "--dirstat=limit".  If you\r
-        want to enable "cumulative" directory statistics, you can use\r
-        the "--cumulative" flag, which adds up percentages recursively\r
-        even when they have been already reported for a sub-directory.\r
+        Output the distribution of relative amount of changes (number of lines added or\r
+        removed) for each sub-directory. Directories with changes below\r
+        a cut-off percent (3% by default) are not shown. The cut-off percent\r
+        can be set with "--dirstat=limit". Changes in a child directory is not\r
+        counted for the parent directory, unless "--cumulative" is used.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -1426,7 +1425,7 @@ always have the special all-zero sha1.</td>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-20 09:13:29 UTC\r
+Last updated 2008-09-03 05:19:54 UTC\r
 </div>\r
 </div>\r
 </body>\r
index c33b89c5d92dd9ca861bcc24f82d304110d9d66f..5aeaa02180c532123d01ba6413470d033599aef1 100644 (file)
@@ -424,12 +424,11 @@ git-diff-tree(1) Manual Page
 </dt>\r
 <dd>\r
 <p>\r
-        Output only the sub-directories that are impacted by a diff,\r
-        and to what degree they are impacted.  You can override the\r
-        default cut-off in percent (3) by "--dirstat=limit".  If you\r
-        want to enable "cumulative" directory statistics, you can use\r
-        the "--cumulative" flag, which adds up percentages recursively\r
-        even when they have been already reported for a sub-directory.\r
+        Output the distribution of relative amount of changes (number of lines added or\r
+        removed) for each sub-directory. Directories with changes below\r
+        a cut-off percent (3% by default) are not shown. The cut-off percent\r
+        can be set with "--dirstat=limit". Changes in a child directory is not\r
+        counted for the parent directory, unless "--cumulative" is used.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -1862,7 +1861,7 @@ the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p></
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-29 08:56:28 UTC\r
+Last updated 2008-09-03 05:19:55 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 7d6e693182371fd387d64a6f0e1c7d890495d4ab..595bb56a42ed1f3ee3175f384a46531a00b849ad 100644 (file)
@@ -500,12 +500,11 @@ and the range notations ("&lt;commit&gt;..&lt;commit&gt;" and
 </dt>\r
 <dd>\r
 <p>\r
-        Output only the sub-directories that are impacted by a diff,\r
-        and to what degree they are impacted.  You can override the\r
-        default cut-off in percent (3) by "--dirstat=limit".  If you\r
-        want to enable "cumulative" directory statistics, you can use\r
-        the "--cumulative" flag, which adds up percentages recursively\r
-        even when they have been already reported for a sub-directory.\r
+        Output the distribution of relative amount of changes (number of lines added or\r
+        removed) for each sub-directory. Directories with changes below\r
+        a cut-off percent (3% by default) are not shown. The cut-off percent\r
+        can be set with "--dirstat=limit". Changes in a child directory is not\r
+        counted for the parent directory, unless "--cumulative" is used.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -1541,7 +1540,7 @@ Output diff in reverse.
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-20 09:13:30 UTC\r
+Last updated 2008-09-03 05:19:56 UTC\r
 </div>\r
 </div>\r
 </body>\r
index a6b14002ccc403987db5fcfdf2a9a55d958cd52a..c6c5afe13fe80496c2a3e53b38b379f2e73dbbc5 100644 (file)
@@ -328,7 +328,7 @@ git-for-each-ref(1) Manual Page
 <div class="sectionbody">\r
 <div class="para"><p>Iterate over all refs that match <tt>&lt;pattern&gt;</tt> and show them\r
 according to the given <tt>&lt;format&gt;</tt>, after sorting them according\r
-to the given set of <tt>&lt;key&gt;</tt>.  If <tt>&lt;max&gt;</tt> is given, stop after\r
+to the given set of <tt>&lt;key&gt;</tt>.  If <tt>&lt;count&gt;</tt> is given, stop after\r
 showing that many refs.  The interpolated values in <tt>&lt;format&gt;</tt>\r
 can optionally be quoted as string literals in the specified\r
 host language allowing their direct evaluation in that language.</p></div>\r
@@ -553,7 +553,7 @@ eval "$eval"</tt></pre>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-06 06:19:08 UTC\r
+Last updated 2008-09-03 05:19:57 UTC\r
 </div>\r
 </div>\r
 </body>\r
index eae6c0e7bcad5708442d10a7bc73eac3ec90bcbd..ebd7c5fbb34576fd2af98b00d9045340ff77ee2b 100644 (file)
@@ -16,7 +16,7 @@ DESCRIPTION
 
 Iterate over all refs that match `<pattern>` and show them
 according to the given `<format>`, after sorting them according
-to the given set of `<key>`.  If `<max>` is given, stop after
+to the given set of `<key>`.  If `<count>` is given, stop after
 showing that many refs.  The interpolated values in `<format>`
 can optionally be quoted as string literals in the specified
 host language allowing their direct evaluation in that language.
index 9fabc3d301824969426fd74bb734156d35d694ac..c45738fd0a75795bfac22f045e0e1f6eef19cbe2 100644 (file)
@@ -470,12 +470,11 @@ reference.</p></div>
 </dt>\r
 <dd>\r
 <p>\r
-        Output only the sub-directories that are impacted by a diff,\r
-        and to what degree they are impacted.  You can override the\r
-        default cut-off in percent (3) by "--dirstat=limit".  If you\r
-        want to enable "cumulative" directory statistics, you can use\r
-        the "--cumulative" flag, which adds up percentages recursively\r
-        even when they have been already reported for a sub-directory.\r
+        Output the distribution of relative amount of changes (number of lines added or\r
+        removed) for each sub-directory. Directories with changes below\r
+        a cut-off percent (3% by default) are not shown. The cut-off percent\r
+        can be set with "--dirstat=limit". Changes in a child directory is not\r
+        counted for the parent directory, unless "--cumulative" is used.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -1151,7 +1150,7 @@ as e-mailable patches:
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-20 09:13:32 UTC\r
+Last updated 2008-09-03 05:19:57 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 953e0a10d87c9d293c235d08d0966866150c3fb7..7b4eb1c623ed9c570c8a6f0db9dcf0ed730f79a9 100644 (file)
@@ -462,7 +462,9 @@ listed in the configuration file.</p></div>
 </div></div>\r
 <div class="para"><p>will try to use konqueror first. But this may fail (for example if\r
 DISPLAY is not set) and in that case emacs' woman mode will be tried.</p></div>\r
-<div class="para"><p>If everything fails the <em>man</em> program will be tried anyway.</p></div>\r
+<div class="para"><p>If everything fails, or if no viewer is configured, the viewer specified\r
+in the GIT_MAN_VIEWER environment variable will be tried.  If that\r
+fails too, the <em>man</em> program will be tried anyway.</p></div>\r
 <h3 id="_man_lt_tool_gt_path">man.&lt;tool&gt;.path</h3><div style="clear:left"></div>\r
 <div class="para"><p>You can explicitly provide a full path to your preferred man viewer by\r
 setting the configuration variable <em>man.&lt;tool&gt;.path</em>. For example, you\r
@@ -521,7 +523,7 @@ little. Maintenance is done by the git-list &lt;git@vger.kernel.org&gt;.</p></di
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-06 05:16:50 UTC\r
+Last updated 2008-09-03 05:19:57 UTC\r
 </div>\r
 </div>\r
 </body>\r
index f414583fc48e85e4785fbf5f9431bb81a96ccd9d..d9b9c34b3a60f09bea4f9e53b5127f33f356e042 100644 (file)
@@ -112,7 +112,9 @@ For example, this configuration:
 will try to use konqueror first. But this may fail (for example if
 DISPLAY is not set) and in that case emacs' woman mode will be tried.
 
-If everything fails the 'man' program will be tried anyway.
+If everything fails, or if no viewer is configured, the viewer specified
+in the GIT_MAN_VIEWER environment variable will be tried.  If that
+fails too, the 'man' program will be tried anyway.
 
 man.<tool>.path
 ~~~~~~~~~~~~~~~
index cfd046a23f3616ef53f03bcbf5ec62543c96272d..4987f212005edab36ac2ddbb84350524a1e6faf7 100644 (file)
@@ -422,12 +422,11 @@ each commit introduces are shown.</p></div>
 </dt>\r
 <dd>\r
 <p>\r
-        Output only the sub-directories that are impacted by a diff,\r
-        and to what degree they are impacted.  You can override the\r
-        default cut-off in percent (3) by "--dirstat=limit".  If you\r
-        want to enable "cumulative" directory statistics, you can use\r
-        the "--cumulative" flag, which adds up percentages recursively\r
-        even when they have been already reported for a sub-directory.\r
+        Output the distribution of relative amount of changes (number of lines added or\r
+        removed) for each sub-directory. Directories with changes below\r
+        a cut-off percent (3% by default) are not shown. The cut-off percent\r
+        can be set with "--dirstat=limit". Changes in a child directory is not\r
+        counted for the parent directory, unless "--cumulative" is used.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -1425,6 +1424,66 @@ one of the parents is TREESAME, we follow only that one, so the other
 sides of the merge are never walked.</p></div>\r
 </dd>\r
 </dl></div>\r
+<div class="para"><p>Finally, there is a fourth simplification mode available:</p></div>\r
+<div class="vlist"><dl>\r
+<dt>\r
+--simplify-merges\r
+</dt>\r
+<dd>\r
+<p>\r
+        First, build a history graph in the same way that\r
+        <em>--full-history</em> with parent rewriting does (see above).\r
+</p>\r
+<div class="para"><p>Then simplify each commit <tt>C</tt> to its replacement <tt>C'</tt> in the final\r
+history according to the following rules:</p></div>\r
+<div class="ilist"><ul>\r
+<li>\r
+<p>\r
+Set <tt>C'</tt> to <tt>C</tt>.<br />\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Replace each parent <tt>P</tt> of <tt>C'</tt> with its simplification <tt>P'</tt>.  In\r
+  the process, drop parents that are ancestors of other parents, and\r
+  remove duplicates.<br />\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If after this parent rewriting, <tt>C'</tt> is a root or merge commit (has\r
+  zero or &gt;1 parents), a boundary commit, or !TREESAME, it remains.\r
+  Otherwise, it is replaced with its only parent.\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="para"><p>The effect of this is best shown by way of comparing to\r
+<em>--full-history</em> with parent rewriting.  The example turns into:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>          .-A---M---N---O\r
+         /     /       /\r
+        I     B       D\r
+         \   /       /\r
+          `---------'</tt></pre>\r
+</div></div>\r
+<div class="para"><p>Note the major differences in <tt>N</tt> and <tt>P</tt> over <em>--full-history</em>:</p></div>\r
+<div class="ilist"><ul>\r
+<li>\r
+<p>\r
+<tt>N</tt>'s parent list had <tt>I</tt> removed, because it is an ancestor of the\r
+  other parent <tt>M</tt>.  Still, <tt>N</tt> remained because it is !TREESAME.<br />\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>P</tt>'s parent list similarly had <tt>I</tt> removed.  <tt>P</tt> was then\r
+  removed completely, because it had one parent and is TREESAME.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+</dl></div>\r
 <h3 id="_commit_ordering">Commit Ordering</h3><div style="clear:left"></div>\r
 <div class="para"><p>By default, the commits are shown in reverse chronological order.</p></div>\r
 <div class="vlist"><dl>\r
@@ -2166,7 +2225,7 @@ reversible operation.</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-29 08:56:28 UTC\r
+Last updated 2008-09-03 05:19:58 UTC\r
 </div>\r
 </div>\r
 </body>\r
index e9af4092f2c9af7d8f18b85c58fd2931efcaa2e3..2b8c52b78cb3f46c83355f9f6d8966db22e95d04 100644 (file)
@@ -951,6 +951,66 @@ one of the parents is TREESAME, we follow only that one, so the other
 sides of the merge are never walked.</p></div>\r
 </dd>\r
 </dl></div>\r
+<div class="para"><p>Finally, there is a fourth simplification mode available:</p></div>\r
+<div class="vlist"><dl>\r
+<dt>\r
+--simplify-merges\r
+</dt>\r
+<dd>\r
+<p>\r
+        First, build a history graph in the same way that\r
+        <em>--full-history</em> with parent rewriting does (see above).\r
+</p>\r
+<div class="para"><p>Then simplify each commit <tt>C</tt> to its replacement <tt>C'</tt> in the final\r
+history according to the following rules:</p></div>\r
+<div class="ilist"><ul>\r
+<li>\r
+<p>\r
+Set <tt>C'</tt> to <tt>C</tt>.<br />\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Replace each parent <tt>P</tt> of <tt>C'</tt> with its simplification <tt>P'</tt>.  In\r
+  the process, drop parents that are ancestors of other parents, and\r
+  remove duplicates.<br />\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If after this parent rewriting, <tt>C'</tt> is a root or merge commit (has\r
+  zero or &gt;1 parents), a boundary commit, or !TREESAME, it remains.\r
+  Otherwise, it is replaced with its only parent.\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="para"><p>The effect of this is best shown by way of comparing to\r
+<em>--full-history</em> with parent rewriting.  The example turns into:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>          .-A---M---N---O\r
+         /     /       /\r
+        I     B       D\r
+         \   /       /\r
+          `---------'</tt></pre>\r
+</div></div>\r
+<div class="para"><p>Note the major differences in <tt>N</tt> and <tt>P</tt> over <em>--full-history</em>:</p></div>\r
+<div class="ilist"><ul>\r
+<li>\r
+<p>\r
+<tt>N</tt>'s parent list had <tt>I</tt> removed, because it is an ancestor of the\r
+  other parent <tt>M</tt>.  Still, <tt>N</tt> remained because it is !TREESAME.<br />\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>P</tt>'s parent list similarly had <tt>I</tt> removed.  <tt>P</tt> was then\r
+  removed completely, because it had one parent and is TREESAME.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+</dl></div>\r
 <h3 id="_bisection_helpers">Bisection Helpers</h3><div style="clear:left"></div>\r
 <div class="vlist"><dl>\r
 <dt>\r
@@ -1441,7 +1501,7 @@ and the git-list &lt;git@vger.kernel.org&gt;.</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-29 08:56:30 UTC\r
+Last updated 2008-09-03 05:19:58 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 22a945fde7dcde62aa3fb76e54e627befd64f322..dabe8c286148bcf03e79b925985dd22ef0802e00 100644 (file)
@@ -504,7 +504,7 @@ perform a pull, and then unstash, like this:</p></div>
 <div class="listingblock">\r
 <div class="content">\r
 <pre><tt>$ git pull\r
-...\r
+ ...\r
 file foobar not up to date, cannot merge.\r
 $ git stash\r
 $ git pull\r
@@ -523,7 +523,7 @@ return to your original branch to make the emergency fix, like this:
 </p>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>... hack hack hack ...\r
+<pre><tt>... hack hack hack ...\r
 $ git checkout -b my_wip\r
 $ git commit -a -m "WIP"\r
 $ git checkout master\r
@@ -531,17 +531,17 @@ $ edit emergency fix
 $ git commit -a -m "Fix in a hurry"\r
 $ git checkout my_wip\r
 $ git reset --soft HEAD^\r
-... continue hacking ...</tt></pre>\r
+... continue hacking ...</tt></pre>\r
 </div></div>\r
 <div class="para"><p>You can use <em>git-stash</em> to simplify the above, like this:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>... hack hack hack ...\r
+<pre><tt>... hack hack hack ...\r
 $ git stash\r
 $ edit emergency fix\r
 $ git commit -a -m "Fix in a hurry"\r
 $ git stash apply\r
-... continue hacking ...</tt></pre>\r
+... continue hacking ...</tt></pre>\r
 </div></div>\r
 </dd>\r
 <dt>\r
@@ -555,13 +555,13 @@ each change before committing:
 </p>\r
 <div class="listingblock">\r
 <div class="content">\r
-<pre><tt>... hack hack hack ...\r
+<pre><tt>... hack hack hack ...\r
 $ git add --patch foo            # add just first part to the index\r
 $ git stash save --keep-index    # save all other changes to the stash\r
 $ edit/build/test first part\r
-$ git commit foo -m 'First part' # commit fully tested change\r
+$ git commit -m 'First part'     # commit fully tested change\r
 $ git stash pop                  # prepare to work on all other changes\r
-... repeat above five steps until one commit remains ...\r
+... repeat above five steps until one commit remains ...\r
 $ edit/build/test remaining parts\r
 $ git commit foo -m 'Remaining parts'</tt></pre>\r
 </div></div>\r
@@ -585,7 +585,7 @@ $ git commit foo -m 'Remaining parts'</tt></pre>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-16 10:22:58 UTC\r
+Last updated 2008-09-03 05:20:00 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 49e2296a24825b2ea3a0976ff9073e7b44e976d8..051f94d26f9f057cbd4db0d6886ca1a4d33c912c 100644 (file)
@@ -159,7 +159,7 @@ perform a pull, and then unstash, like this:
 +
 ----------------------------------------------------------------
 $ git pull
-...
+ ...
 file foobar not up to date, cannot merge.
 $ git stash
 $ git pull
@@ -174,7 +174,7 @@ make a commit to a temporary branch to store your changes away, and
 return to your original branch to make the emergency fix, like this:
 +
 ----------------------------------------------------------------
-... hack hack hack ...
+... hack hack hack ...
 $ git checkout -b my_wip
 $ git commit -a -m "WIP"
 $ git checkout master
@@ -182,18 +182,18 @@ $ edit emergency fix
 $ git commit -a -m "Fix in a hurry"
 $ git checkout my_wip
 $ git reset --soft HEAD^
-... continue hacking ...
+... continue hacking ...
 ----------------------------------------------------------------
 +
 You can use 'git-stash' to simplify the above, like this:
 +
 ----------------------------------------------------------------
-... hack hack hack ...
+... hack hack hack ...
 $ git stash
 $ edit emergency fix
 $ git commit -a -m "Fix in a hurry"
 $ git stash apply
-... continue hacking ...
+... continue hacking ...
 ----------------------------------------------------------------
 
 Testing partial commits::
@@ -203,13 +203,13 @@ more commits out of the changes in the work tree, and you want to test
 each change before committing:
 +
 ----------------------------------------------------------------
-... hack hack hack ...
+... hack hack hack ...
 $ git add --patch foo            # add just first part to the index
 $ git stash save --keep-index    # save all other changes to the stash
 $ edit/build/test first part
-$ git commit foo -m 'First part' # commit fully tested change
+$ git commit -m 'First part'     # commit fully tested change
 $ git stash pop                  # prepare to work on all other changes
-... repeat above five steps until one commit remains ...
+... repeat above five steps until one commit remains ...
 $ edit/build/test remaining parts
 $ git commit foo -m 'Remaining parts'
 ----------------------------------------------------------------
index 735cf07b20e17e29d96f701d97768ae610aea590..0ce916a1887b0846bfc5a6e2233242601e0dde79 100644 (file)
@@ -409,6 +409,48 @@ Note that without '\--full-history', this still simplifies merges: if
 one of the parents is TREESAME, we follow only that one, so the other
 sides of the merge are never walked.
 
+Finally, there is a fourth simplification mode available:
+
+--simplify-merges::
+
+       First, build a history graph in the same way that
+       '\--full-history' with parent rewriting does (see above).
++
+Then simplify each commit `C` to its replacement `C'` in the final
+history according to the following rules:
++
+--
+* Set `C'` to `C`.
++
+* Replace each parent `P` of `C'` with its simplification `P'`.  In
+  the process, drop parents that are ancestors of other parents, and
+  remove duplicates.
++
+* If after this parent rewriting, `C'` is a root or merge commit (has
+  zero or >1 parents), a boundary commit, or !TREESAME, it remains.
+  Otherwise, it is replaced with its only parent.
+--
++
+The effect of this is best shown by way of comparing to
+'\--full-history' with parent rewriting.  The example turns into:
++
+-----------------------------------------------------------------------
+         .-A---M---N---O
+        /     /       /
+       I     B       D
+        \   /       /
+         `---------'
+-----------------------------------------------------------------------
++
+Note the major differences in `N` and `P` over '\--full-history':
++
+--
+* `N`'s parent list had `I` removed, because it is an ancestor of the
+  other parent `M`.  Still, `N` remained because it is !TREESAME.
++
+* `P`'s parent list similarly had `I` removed.  `P` was then
+  removed completely, because it had one parent and is TREESAME.
+--
 
 ifdef::git-rev-list[]
 Bisection Helpers