Merge branch 'ft/diff-rename-default-score-is-half' into maint
authorJunio C Hamano <gitster@pobox.com>
Fri, 19 Jul 2013 17:43:05 +0000 (10:43 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Jul 2013 17:43:05 +0000 (10:43 -0700)
* ft/diff-rename-default-score-is-half:
  diff-options: document default similarity index

1  2 
Documentation/diff-options.txt

@@@ -55,26 -55,6 +55,26 @@@ endif::git-format-patch[
  --histogram::
        Generate a diff using the "histogram diff" algorithm.
  
 +--diff-algorithm={patience|minimal|histogram|myers}::
 +      Choose a diff algorithm. The variants are as follows:
 ++
 +--
 +`default`, `myers`;;
 +      The basic greedy diff algorithm. Currently, this is the default.
 +`minimal`;;
 +      Spend extra time to make sure the smallest possible diff is
 +      produced.
 +`patience`;;
 +      Use "patience diff" algorithm when generating patches.
 +`histogram`;;
 +      This algorithm extends the patience algorithm to "support
 +      low-occurrence common elements".
 +--
 ++
 +For instance, if you configured diff.algorithm variable to a
 +non-default value and want to use the default one, then you
 +have to use `--diff-algorithm=default` option.
 +
  --stat[=<width>[,<name-width>[,<count>]]]::
        Generate a diffstat. By default, as much space as necessary
        will be used for the filename part, and the rest for the graph
@@@ -195,8 -175,8 +195,8 @@@ any of those replacements occurred
  
  --color[=<when>]::
        Show colored diff.
 -      The value must be `always` (the default for `<when>`), `never`, or `auto`.
 -      The default value is `never`.
 +      `--color` (i.e. without '=<when>') is the same as `--color=always`.
 +      '<when>' can be one of `always`, `never`, or `auto`.
  ifdef::git-diff[]
        It can be changed by the `color.ui` and `color.diff`
        configuration settings.
@@@ -303,7 -283,7 +303,7 @@@ few lines that happen to match textuall
  single deletion of everything old followed by a single insertion of
  everything new, and the number `m` controls this aspect of the -B
  option (defaults to 60%). `-B/70%` specifies that less than 30% of the
 -original should remain in the result for git to consider it a total
 +original should remain in the result for Git to consider it a total
  rewrite (i.e. otherwise the resulting patch will be a series of
  deletion and insertion mixed together with context lines).
  +
@@@ -327,13 -307,13 +327,13 @@@ ifdef::git-log[
  endif::git-log[]
        If `n` is specified, it is a threshold on the similarity
        index (i.e. amount of addition/deletions compared to the
 -      file's size). For example, `-M90%` means git should consider a
 +      file's size). For example, `-M90%` means Git should consider a
        delete/add pair to be a rename if more than 90% of the file
        hasn't changed.  Without a `%` sign, the number is to be read as
        a fraction, with a decimal point before it.  I.e., `-M5` becomes
        0.5, and is thus the same as `-M50%`.  Similarly, `-M05` is
        the same as `-M5%`.  To limit detection to exact renames, use
-       `-M100%`.
+       `-M100%`.  The default similarity index is 50%.
  
  -C[<n>]::
  --find-copies[=<n>]::
@@@ -383,36 -363,14 +383,36 @@@ 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
        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>::
@@@ -502,7 -460,7 +502,7 @@@ endif::git-format-patch[
  
  --ignore-submodules[=<when>]::
        Ignore changes to submodules in the diff generation. <when> can be
 -      either "none", "untracked", "dirty" or "all", which is the default
 +      either "none", "untracked", "dirty" or "all", which is the default.
        Using "none" will consider the submodule modified when it either contains
        untracked or modified files or its HEAD differs from the commit recorded
        in the superproject and can be used to override any settings of the