Browse files

Autogenerated HTML docs for v1.8.3.1-377-g4d1c5

  • Loading branch information...
1 parent 8d74cd3 commit f1f5a7b64053a592c7655df84079443328582b68 @gitster committed Jun 11, 2013
View
49 RelNotes/1.8.4.txt
@@ -4,7 +4,15 @@ Git v1.8.4 Release Notes
Updates since v1.8.3
--------------------
-Foreign interface
+Foreign interfaces and ports.
+
+ * Update build for Cygwin 1.[57]. Torsten Bögershausen reports that
+ this is fine with Cygwin 1.7 ($gmane/225824) so let's try moving it
+ ahead.
+
+ * The credential helper to talk to keychain on OS X (in contrib/) has
+ been updated to kick in not just when talking http/https but also
+ imap(s) and smtp.
* Remote transport helper has been updated to report errors and
maintain ref hierarchy used to keep track of its own state better.
@@ -14,8 +22,28 @@ Foreign interface
does not work yet, and (2) the helper may not know how to do
--dry-run; these problematic cases are disabled for now.
+ * git-remote-hg/bzr (in contrib/) updates.
+
+ * git-remote-mw (in contrib/) hints users to check the certificate,
+ when https:// connection failed.
+
+
UI, Workflows & Features
+ * "git cmd <name>", when <name> happens to be a 40-hex string,
+ directly uses the 40-hex string as an object name, even if a ref
+ "refs/<some hierarchy>/<name>" exists. This disambiguation order
+ is unlikely to change, but we should warn about the ambiguity just
+ like we warn when more than one refs/ hierachies share the same
+ name.
+
+ * "git rebase" learned "--[no-]autostash" option to save local
+ changes instead of refusing to run (to which people's normal
+ response was to stash them and re-run).
+
+ * Instead of typing four capital letters "HEAD", you can say "@" now,
+ e.g. "git log @".
+
* "check-ignore" (new feature since 1.8.2) has been updated to work
more like "check-attr" over bidi-pipes.
@@ -57,6 +85,9 @@ UI, Workflows & Features
Performance, Internal Implementation, etc.
+ * Some leaks in unpack-trees (used in merge, cherry-pick and other
+ codepaths) have been plugged.
+
* The codepath to read from marks files in fast-import/export did not
have to accept anything but 40-hex representation of the object
name. Further, fast-export did not need full in-core object
@@ -91,6 +122,22 @@ Unless otherwise noted, all the fixes since v1.8.3 in the maintenance
track are contained in this release (see release notes to them for
details).
+ * "gitweb" forgot to clear a global variable $search_regexp upon each
+ request, mistakenly carrying over the previous search to a new one
+ when used as a persistent CGI.
+ (merge ca7a5dc cm/gitweb-project-list-persistent-cgi-fix later to maint).
+
+ * The wildmatch engine did not honor WM_CASEFOLD option correctly.
+ (merge b79c0c3 ar/wildmatch-foldcase later to maint).
+
+ * "git log -c --follow $path" segfaulted upon hitting the commit that
+ renamed the $path being followed.
+ (merge 46ec510 cb/log-follow-with-combined later to maint).
+
+ * When a reflog notation is used for implicit "current branch", we
+ did not say which branch and worse said "branch ''".
+ (merge 305ebea rr/die-on-missing-upstream later to maint).
+
* "difftool --dir-diff" did not copy back changes made by the
end-user in the diff tool backend to the working tree in some
cases.
View
8 config.txt
@@ -1867,6 +1867,14 @@ rebase.stat::
rebase.autosquash::
If set to true enable '--autosquash' option by default.
+rebase.autostash::
+ When set to true, automatically create a temporary stash
+ before the operation begins, and apply it after the operation
+ ends. This means that you can run rebase on a dirty worktree.
+ However, use with care: the final stash application after a
+ successful rebase might result in non-trivial conflicts.
+ Defaults to false.
+
receive.autogc::
By default, git-receive-pack will run "git-gc --auto" after
receiving data from git-push and updating refs. You can stop
View
38 diff-options.txt
@@ -383,23 +383,45 @@ ifndef::git-format-patch[]
that matches other criteria, nothing is selected.
-S<string>::
- Look for differences that introduce or remove an instance of
- <string>. Note that this is different than the string simply
- appearing in diff output; see the 'pickaxe' entry in
- linkgit:gitdiffcore[7] for more details.
+ Look for differences that change the number of occurrences of
+ the specified string (i.e. addition/deletion) in a file.
+ Intended for the scripter's use.
++
+It is useful when you're looking for an exact block of code (like a
+struct), and want to know the history of that block since it first
+came into being: use the feature iteratively to feed the interesting
+block in the preimage back into `-S`, and keep going until you get the
+very first version of the block.
-G<regex>::
- Look for differences whose added or removed line matches
- the given <regex>.
+ Look for differences whose patch text contains added/removed
+ lines that match <regex>.
++
+To illustrate the difference between `-S<regex> --pickaxe-regex` and
+`-G<regex>`, consider a commit with the following diff in the same
+file:
++
+----
++ return !regexec(regexp, two->ptr, 1, &regmatch, 0);
+...
+- hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);
+----
++
+While `git log -G"regexec\(regexp"` will show this commit, `git log
+-S"regexec\(regexp" --pickaxe-regex` will not (because the number of
+occurrences of that string did not change).
++
+See the 'pickaxe' entry in linkgit:gitdiffcore[7] for more
+information.
--pickaxe-all::
When `-S` or `-G` finds a change, show all the changes in that
changeset, not just the files that contain the change
in <string>.
--pickaxe-regex::
- Make the <string> not a plain string but an extended POSIX
- regex to match.
+ Treat the <string> given to `-S` as an extended POSIX regular
+ expression to match.
endif::git-format-patch[]
-O<orderfile>::
View
2 fetch-options.txt
@@ -61,7 +61,7 @@ endif::git-pull[]
ifndef::git-pull[]
-t::
--tags::
- This is a short-hand for giving "refs/tags/*:refs/tags/*"
+ This is a short-hand for giving `refs/tags/*:refs/tags/*`
refspec from the command line, to ask all tags to be fetched
and stored locally. Because this acts as an explicit
refspec, the default refspecs (configured with the
View
7 git-check-ref-format.html
@@ -820,6 +820,11 @@ <h2 id="_description">DESCRIPTION</h2>
</li>
<li>
<p>
+They cannot be the single character <code>@</code>.
+</p>
+</li>
+<li>
+<p>
They cannot contain a <code>\</code>.
</p>
</li>
@@ -941,7 +946,7 @@ <h2 id="_git">GIT</h2>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Last updated 2013-05-17 16:33:07 PDT
+Last updated 2013-06-11 15:22:06 PDT
</div>
</div>
</body>
View
2 git-check-ref-format.txt
@@ -54,6 +54,8 @@ Git imposes the following rules on how references are named:
. They cannot contain a sequence `@{`.
+. They cannot be the single character `@`.
+
. They cannot contain a `\`.
These rules make it easy for shell script based tools to parse
View
13 git-config.html
@@ -5098,6 +5098,19 @@ <h3 id="_variables">Variables</h3>
</p>
</dd>
<dt class="hdlist1">
+rebase.autostash
+</dt>
+<dd>
+<p>
+ When set to true, automatically create a temporary stash
+ before the operation begins, and apply it after the operation
+ ends. This means that you can run rebase on a dirty worktree.
+ However, use with care: the final stash application after a
+ successful rebase might result in non-trivial conflicts.
+ Defaults to false.
+</p>
+</dd>
+<dt class="hdlist1">
receive.autogc
</dt>
<dd>
View
34 git-diff-files.html
@@ -1358,20 +1358,38 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- Look for differences that introduce or remove an instance of
- &lt;string&gt;. Note that this is different than the string simply
- appearing in diff output; see the <em>pickaxe</em> entry in
- <a href="gitdiffcore.html">gitdiffcore(7)</a> for more details.
+ Look for differences that change the number of occurrences of
+ the specified string (i.e. addition/deletion) in a file.
+ Intended for the scripter&#8217;s use.
</p>
+<div class="paragraph"><p>It is useful when you&#8217;re looking for an exact block of code (like a
+struct), and want to know the history of that block since it first
+came into being: use the feature iteratively to feed the interesting
+block in the preimage back into <code>-S</code>, and keep going until you get the
+very first version of the block.</p></div>
</dd>
<dt class="hdlist1">
-G&lt;regex&gt;
</dt>
<dd>
<p>
- Look for differences whose added or removed line matches
- the given &lt;regex&gt;.
+ Look for differences whose patch text contains added/removed
+ lines that match &lt;regex&gt;.
</p>
+<div class="paragraph"><p>To illustrate the difference between <code>-S&lt;regex&gt; --pickaxe-regex</code> and
+<code>-G&lt;regex&gt;</code>, consider a commit with the following diff in the same
+file:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>+ return !regexec(regexp, two-&gt;ptr, 1, &amp;regmatch, 0);
+...
+- hit = !regexec(regexp, mf2.ptr, 1, &amp;regmatch, 0);</code></pre>
+</div></div>
+<div class="paragraph"><p>While <code>git log -G"regexec\(regexp"</code> will show this commit, <code>git log
+-S"regexec\(regexp" --pickaxe-regex</code> will not (because the number of
+occurrences of that string did not change).</p></div>
+<div class="paragraph"><p>See the <em>pickaxe</em> entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more
+information.</p></div>
</dd>
<dt class="hdlist1">
--pickaxe-all
@@ -1388,8 +1406,8 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- Make the &lt;string&gt; not a plain string but an extended POSIX
- regex to match.
+ Treat the &lt;string&gt; given to <code>-S</code> as an extended POSIX regular
+ expression to match.
</p>
</dd>
<dt class="hdlist1">
View
34 git-diff-index.html
@@ -1359,20 +1359,38 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- Look for differences that introduce or remove an instance of
- &lt;string&gt;. Note that this is different than the string simply
- appearing in diff output; see the <em>pickaxe</em> entry in
- <a href="gitdiffcore.html">gitdiffcore(7)</a> for more details.
+ Look for differences that change the number of occurrences of
+ the specified string (i.e. addition/deletion) in a file.
+ Intended for the scripter&#8217;s use.
</p>
+<div class="paragraph"><p>It is useful when you&#8217;re looking for an exact block of code (like a
+struct), and want to know the history of that block since it first
+came into being: use the feature iteratively to feed the interesting
+block in the preimage back into <code>-S</code>, and keep going until you get the
+very first version of the block.</p></div>
</dd>
<dt class="hdlist1">
-G&lt;regex&gt;
</dt>
<dd>
<p>
- Look for differences whose added or removed line matches
- the given &lt;regex&gt;.
+ Look for differences whose patch text contains added/removed
+ lines that match &lt;regex&gt;.
</p>
+<div class="paragraph"><p>To illustrate the difference between <code>-S&lt;regex&gt; --pickaxe-regex</code> and
+<code>-G&lt;regex&gt;</code>, consider a commit with the following diff in the same
+file:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>+ return !regexec(regexp, two-&gt;ptr, 1, &amp;regmatch, 0);
+...
+- hit = !regexec(regexp, mf2.ptr, 1, &amp;regmatch, 0);</code></pre>
+</div></div>
+<div class="paragraph"><p>While <code>git log -G"regexec\(regexp"</code> will show this commit, <code>git log
+-S"regexec\(regexp" --pickaxe-regex</code> will not (because the number of
+occurrences of that string did not change).</p></div>
+<div class="paragraph"><p>See the <em>pickaxe</em> entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more
+information.</p></div>
</dd>
<dt class="hdlist1">
--pickaxe-all
@@ -1389,8 +1407,8 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- Make the &lt;string&gt; not a plain string but an extended POSIX
- regex to match.
+ Treat the &lt;string&gt; given to <code>-S</code> as an extended POSIX regular
+ expression to match.
</p>
</dd>
<dt class="hdlist1">
View
34 git-diff-tree.html
@@ -1360,20 +1360,38 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- Look for differences that introduce or remove an instance of
- &lt;string&gt;. Note that this is different than the string simply
- appearing in diff output; see the <em>pickaxe</em> entry in
- <a href="gitdiffcore.html">gitdiffcore(7)</a> for more details.
+ Look for differences that change the number of occurrences of
+ the specified string (i.e. addition/deletion) in a file.
+ Intended for the scripter&#8217;s use.
</p>
+<div class="paragraph"><p>It is useful when you&#8217;re looking for an exact block of code (like a
+struct), and want to know the history of that block since it first
+came into being: use the feature iteratively to feed the interesting
+block in the preimage back into <code>-S</code>, and keep going until you get the
+very first version of the block.</p></div>
</dd>
<dt class="hdlist1">
-G&lt;regex&gt;
</dt>
<dd>
<p>
- Look for differences whose added or removed line matches
- the given &lt;regex&gt;.
+ Look for differences whose patch text contains added/removed
+ lines that match &lt;regex&gt;.
</p>
+<div class="paragraph"><p>To illustrate the difference between <code>-S&lt;regex&gt; --pickaxe-regex</code> and
+<code>-G&lt;regex&gt;</code>, consider a commit with the following diff in the same
+file:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>+ return !regexec(regexp, two-&gt;ptr, 1, &amp;regmatch, 0);
+...
+- hit = !regexec(regexp, mf2.ptr, 1, &amp;regmatch, 0);</code></pre>
+</div></div>
+<div class="paragraph"><p>While <code>git log -G"regexec\(regexp"</code> will show this commit, <code>git log
+-S"regexec\(regexp" --pickaxe-regex</code> will not (because the number of
+occurrences of that string did not change).</p></div>
+<div class="paragraph"><p>See the <em>pickaxe</em> entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more
+information.</p></div>
</dd>
<dt class="hdlist1">
--pickaxe-all
@@ -1390,8 +1408,8 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- Make the &lt;string&gt; not a plain string but an extended POSIX
- regex to match.
+ Treat the &lt;string&gt; given to <code>-S</code> as an extended POSIX regular
+ expression to match.
</p>
</dd>
<dt class="hdlist1">
View
34 git-diff.html
@@ -1457,20 +1457,38 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- Look for differences that introduce or remove an instance of
- &lt;string&gt;. Note that this is different than the string simply
- appearing in diff output; see the <em>pickaxe</em> entry in
- <a href="gitdiffcore.html">gitdiffcore(7)</a> for more details.
+ Look for differences that change the number of occurrences of
+ the specified string (i.e. addition/deletion) in a file.
+ Intended for the scripter&#8217;s use.
</p>
+<div class="paragraph"><p>It is useful when you&#8217;re looking for an exact block of code (like a
+struct), and want to know the history of that block since it first
+came into being: use the feature iteratively to feed the interesting
+block in the preimage back into <code>-S</code>, and keep going until you get the
+very first version of the block.</p></div>
</dd>
<dt class="hdlist1">
-G&lt;regex&gt;
</dt>
<dd>
<p>
- Look for differences whose added or removed line matches
- the given &lt;regex&gt;.
+ Look for differences whose patch text contains added/removed
+ lines that match &lt;regex&gt;.
</p>
+<div class="paragraph"><p>To illustrate the difference between <code>-S&lt;regex&gt; --pickaxe-regex</code> and
+<code>-G&lt;regex&gt;</code>, consider a commit with the following diff in the same
+file:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>+ return !regexec(regexp, two-&gt;ptr, 1, &amp;regmatch, 0);
+...
+- hit = !regexec(regexp, mf2.ptr, 1, &amp;regmatch, 0);</code></pre>
+</div></div>
+<div class="paragraph"><p>While <code>git log -G"regexec\(regexp"</code> will show this commit, <code>git log
+-S"regexec\(regexp" --pickaxe-regex</code> will not (because the number of
+occurrences of that string did not change).</p></div>
+<div class="paragraph"><p>See the <em>pickaxe</em> entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more
+information.</p></div>
</dd>
<dt class="hdlist1">
--pickaxe-all
@@ -1487,8 +1505,8 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- Make the &lt;string&gt; not a plain string but an extended POSIX
- regex to match.
+ Treat the &lt;string&gt; given to <code>-S</code> as an extended POSIX regular
+ expression to match.
</p>
</dd>
<dt class="hdlist1">
View
2 git-fetch.html
@@ -898,7 +898,7 @@ <h2 id="_options">OPTIONS</h2>
</dt>
<dd>
<p>
- This is a short-hand for giving "refs/tags/<strong>:refs/tags/</strong>"
+ This is a short-hand for giving <code>refs/tags/*:refs/tags/*</code>
refspec from the command line, to ask all tags to be fetched
and stored locally. Because this acts as an explicit
refspec, the default refspecs (configured with the
View
34 git-log.html
@@ -3188,20 +3188,38 @@ <h2 id="_common_diff_options">Common diff options</h2>
</dt>
<dd>
<p>
- Look for differences that introduce or remove an instance of
- &lt;string&gt;. Note that this is different than the string simply
- appearing in diff output; see the <em>pickaxe</em> entry in
- <a href="gitdiffcore.html">gitdiffcore(7)</a> for more details.
+ Look for differences that change the number of occurrences of
+ the specified string (i.e. addition/deletion) in a file.
+ Intended for the scripter&#8217;s use.
</p>
+<div class="paragraph"><p>It is useful when you&#8217;re looking for an exact block of code (like a
+struct), and want to know the history of that block since it first
+came into being: use the feature iteratively to feed the interesting
+block in the preimage back into <code>-S</code>, and keep going until you get the
+very first version of the block.</p></div>
</dd>
<dt class="hdlist1">
-G&lt;regex&gt;
</dt>
<dd>
<p>
- Look for differences whose added or removed line matches
- the given &lt;regex&gt;.
+ Look for differences whose patch text contains added/removed
+ lines that match &lt;regex&gt;.
</p>
+<div class="paragraph"><p>To illustrate the difference between <code>-S&lt;regex&gt; --pickaxe-regex</code> and
+<code>-G&lt;regex&gt;</code>, consider a commit with the following diff in the same
+file:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>+ return !regexec(regexp, two-&gt;ptr, 1, &amp;regmatch, 0);
+...
+- hit = !regexec(regexp, mf2.ptr, 1, &amp;regmatch, 0);</code></pre>
+</div></div>
+<div class="paragraph"><p>While <code>git log -G"regexec\(regexp"</code> will show this commit, <code>git log
+-S"regexec\(regexp" --pickaxe-regex</code> will not (because the number of
+occurrences of that string did not change).</p></div>
+<div class="paragraph"><p>See the <em>pickaxe</em> entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more
+information.</p></div>
</dd>
<dt class="hdlist1">
--pickaxe-all
@@ -3218,8 +3236,8 @@ <h2 id="_common_diff_options">Common diff options</h2>
</dt>
<dd>
<p>
- Make the &lt;string&gt; not a plain string but an extended POSIX
- regex to match.
+ Treat the &lt;string&gt; given to <code>-S</code> as an extended POSIX regular
+ expression to match.
</p>
</dd>
<dt class="hdlist1">
View
22 git-rebase.html
@@ -943,6 +943,14 @@ <h2 id="_configuration">CONFIGURATION</h2>
If set to true enable <em>--autosquash</em> option by default.
</p>
</dd>
+<dt class="hdlist1">
+rebase.autostash
+</dt>
+<dd>
+<p>
+ If set to true enable <em>--autostash</em> option by default.
+</p>
+</dd>
</dl></div>
</div>
</div>
@@ -1284,6 +1292,18 @@ <h2 id="_options">OPTIONS</h2>
used to override and disable this setting.</p></div>
</dd>
<dt class="hdlist1">
+--[no-]autostash
+</dt>
+<dd>
+<p>
+ Automatically create a temporary stash before the operation
+ begins, and apply it after the operation ends. This means
+ that you can run rebase on a dirty worktree. However, use
+ with care: the final stash application after a successful
+ rebase might result in non-trivial conflicts.
+</p>
+</dd>
+<dt class="hdlist1">
--no-ff
</dt>
<dd>
@@ -1912,7 +1932,7 @@ <h2 id="_git">GIT</h2>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Last updated 2013-02-05 21:07:26 PST
+Last updated 2013-06-11 15:22:06 PDT
</div>
</div>
</body>
View
10 git-rebase.txt
@@ -208,6 +208,9 @@ rebase.stat::
rebase.autosquash::
If set to true enable '--autosquash' option by default.
+rebase.autostash::
+ If set to true enable '--autostash' option by default.
+
OPTIONS
-------
--onto <newbase>::
@@ -394,6 +397,13 @@ If the '--autosquash' option is enabled by default using the
configuration variable `rebase.autosquash`, this option can be
used to override and disable this setting.
+--[no-]autostash::
+ Automatically create a temporary stash before the operation
+ begins, and apply it after the operation ends. This means
+ that you can run rebase on a dirty worktree. However, use
+ with care: the final stash application after a successful
+ rebase might result in non-trivial conflicts.
+
--no-ff::
With --interactive, cherry-pick all rebased commits instead of
fast-forwarding over the unchanged ones. This ensures that the
View
8 git-rev-parse.html
@@ -1215,6 +1215,14 @@ <h2 id="_specifying_revisions">SPECIFYING REVISIONS</h2>
</ol></div>
</dd>
<dt class="hdlist1">
+<em>@</em>
+</dt>
+<dd>
+<p>
+ <em>@</em> alone is a shortcut for <em>HEAD</em>.
+</p>
+</dd>
+<dt class="hdlist1">
<em>&lt;refname&gt;@{&lt;date&gt;}</em>, e.g. <em>master@{yesterday}</em>, <em>HEAD@{5 minutes ago}</em>
</dt>
<dd>
View
6 git.html
@@ -2357,9 +2357,7 @@ <h3 id="_the_git_repository">The Git Repository</h3>
</dt>
<dd>
<p>
- Set the path to the working tree. The value will not be
- used in combination with repositories found automatically in
- a .git directory (i.e. $GIT_DIR is not set).
+ Set the path to the root of the working tree.
This can also be controlled by the <em>--work-tree</em> command line
option and the core.worktree configuration variable.
</p>
@@ -2744,7 +2742,7 @@ <h2 id="_git">GIT</h2>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Last updated 2013-05-29 16:56:14 PDT
+Last updated 2013-06-11 15:22:06 PDT
</div>
</div>
</body>
View
4 git.txt
@@ -683,9 +683,7 @@ Git so take care if using Cogito etc.
The '--git-dir' command-line option also sets this value.
'GIT_WORK_TREE'::
- Set the path to the working tree. The value will not be
- used in combination with repositories found automatically in
- a .git directory (i.e. $GIT_DIR is not set).
+ Set the path to the root of the working tree.
This can also be controlled by the '--work-tree' command line
option and the core.worktree configuration variable.
View
41 gitdiffcore.html
@@ -987,21 +987,30 @@ <h2 id="_diffcore_merge_broken_for_putting_complete_rewrites_back_together">diff
<div class="sect1">
<h2 id="_diffcore_pickaxe_for_detecting_addition_deletion_of_specified_string">diffcore-pickaxe: For Detecting Addition/Deletion of Specified String</h2>
<div class="sectionbody">
-<div class="paragraph"><p>This transformation is used to find filepairs that represent
-changes that touch a specified string, and is controlled by the
--S option and the <code>--pickaxe-all</code> option to the <em>git diff-*</em>
-commands.</p></div>
-<div class="paragraph"><p>When diffcore-pickaxe is in use, it checks if there are
-filepairs whose "result" side and whose "origin" side have
-different number of specified string. Such a filepair represents
-"the string appeared in this changeset". It also checks for the
-opposite case that loses the specified string.</p></div>
-<div class="paragraph"><p>When <code>--pickaxe-all</code> is not in effect, diffcore-pickaxe leaves
-only such filepairs that touch the specified string in its
-output. When <code>--pickaxe-all</code> is used, diffcore-pickaxe leaves all
-filepairs intact if there is such a filepair, or makes the
-output empty otherwise. The latter behaviour is designed to
-make reviewing of the changes in the context of the whole
+<div class="paragraph"><p>This transformation limits the set of filepairs to those that change
+specified strings between the preimage and the postimage in a certain
+way. -S&lt;block of text&gt; and -G&lt;regular expression&gt; options are used to
+specify different ways these strings are sought.</p></div>
+<div class="paragraph"><p>"-S&lt;block of text&gt;" detects filepairs whose preimage and postimage
+have different number of occurrences of the specified block of text.
+By definition, it will not detect in-file moves. Also, when a
+changeset moves a file wholesale without affecting the interesting
+string, diffcore-rename kicks in as usual, and <code>-S</code> omits the filepair
+(since the number of occurrences of that string didn&#8217;t change in that
+rename-detected filepair). When used with <code>--pickaxe-regex</code>, treat
+the &lt;block of text&gt; as an extended POSIX regular expression to match,
+instead of a literal string.</p></div>
+<div class="paragraph"><p>"-G&lt;regular expression&gt;" (mnemonic: grep) detects filepairs whose
+textual diff has an added or a deleted line that matches the given
+regular expression. This means that it will detect in-file (or what
+rename-detection considers the same file) moves, which is noise. The
+implementation runs diff twice and greps, and this can be quite
+expensive.</p></div>
+<div class="paragraph"><p>When <code>-S</code> or <code>-G</code> are used without <code>--pickaxe-all</code>, only filepairs
+that match their respective criterion are kept in the output. When
+<code>--pickaxe-all</code> is used, if even one filepair matches their respective
+criterion in a changeset, the entire changeset is kept. This behavior
+is designed to make reviewing changes in the context of the whole
changeset easier.</p></div>
</div>
</div>
@@ -1051,7 +1060,7 @@ <h2 id="_git">GIT</h2>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Last updated 2013-04-21 19:25:38 PDT
+Last updated 2013-06-11 15:22:06 PDT
</div>
</div>
</body>
View
45 gitdiffcore.txt
@@ -222,26 +222,35 @@ version prefixed with '+'.
diffcore-pickaxe: For Detecting Addition/Deletion of Specified String
---------------------------------------------------------------------
-This transformation is used to find filepairs that represent
-changes that touch a specified string, and is controlled by the
--S option and the `--pickaxe-all` option to the 'git diff-*'
-commands.
-
-When diffcore-pickaxe is in use, it checks if there are
-filepairs whose "result" side and whose "origin" side have
-different number of specified string. Such a filepair represents
-"the string appeared in this changeset". It also checks for the
-opposite case that loses the specified string.
-
-When `--pickaxe-all` is not in effect, diffcore-pickaxe leaves
-only such filepairs that touch the specified string in its
-output. When `--pickaxe-all` is used, diffcore-pickaxe leaves all
-filepairs intact if there is such a filepair, or makes the
-output empty otherwise. The latter behaviour is designed to
-make reviewing of the changes in the context of the whole
+This transformation limits the set of filepairs to those that change
+specified strings between the preimage and the postimage in a certain
+way. -S<block of text> and -G<regular expression> options are used to
+specify different ways these strings are sought.
+
+"-S<block of text>" detects filepairs whose preimage and postimage
+have different number of occurrences of the specified block of text.
+By definition, it will not detect in-file moves. Also, when a
+changeset moves a file wholesale without affecting the interesting
+string, diffcore-rename kicks in as usual, and `-S` omits the filepair
+(since the number of occurrences of that string didn't change in that
+rename-detected filepair). When used with `--pickaxe-regex`, treat
+the <block of text> as an extended POSIX regular expression to match,
+instead of a literal string.
+
+"-G<regular expression>" (mnemonic: grep) detects filepairs whose
+textual diff has an added or a deleted line that matches the given
+regular expression. This means that it will detect in-file (or what
+rename-detection considers the same file) moves, which is noise. The
+implementation runs diff twice and greps, and this can be quite
+expensive.
+
+When `-S` or `-G` are used without `--pickaxe-all`, only filepairs
+that match their respective criterion are kept in the output. When
+`--pickaxe-all` is used, if even one filepair matches their respective
+criterion in a changeset, the entire changeset is kept. This behavior
+is designed to make reviewing changes in the context of the whole
changeset easier.
-
diffcore-order: For Sorting the Output Based on Filenames
---------------------------------------------------------
View
8 gitrevisions.html
@@ -855,6 +855,14 @@ <h2 id="_specifying_revisions">SPECIFYING REVISIONS</h2>
</ol></div>
</dd>
<dt class="hdlist1">
+<em>@</em>
+</dt>
+<dd>
+<p>
+ <em>@</em> alone is a shortcut for <em>HEAD</em>.
+</p>
+</dd>
+<dt class="hdlist1">
<em>&lt;refname&gt;@{&lt;date&gt;}</em>, e.g. <em>master@{yesterday}</em>, <em>HEAD@{5 minutes ago}</em>
</dt>
<dd>
View
3 revisions.txt
@@ -58,6 +58,9 @@ the '$GIT_DIR/refs' directory or from the '$GIT_DIR/packed-refs' file.
While the ref name encoding is unspecified, UTF-8 is preferred as
some output processing may assume ref names in UTF-8.
+'@'::
+ '@' alone is a shortcut for 'HEAD'.
+
'<refname>@\{<date>\}', e.g. 'master@\{yesterday\}', 'HEAD@\{5 minutes ago\}'::
A ref followed by the suffix '@' with a date specification
enclosed in a brace

0 comments on commit f1f5a7b

Please sign in to comment.