Merge branch 'js/diff-verbose-submodule'
[gitweb.git] / Documentation / diff-options.txt
index 45885bbbb2c39444a9640c79ab0ae5bc6d587939..e26b84706f8f29de26036ceec691e8cd6aac4661 100644 (file)
@@ -19,16 +19,12 @@ endif::git-format-patch[]
 
 ifndef::git-format-patch[]
 -p::
+-u::
        Generate patch (see section on generating patches).
        {git-diff? This is the default.}
 endif::git-format-patch[]
 
--u::
-       Synonym for "-p".
-
 -U<n>::
-       Shorthand for "--unified=<n>".
-
 --unified=<n>::
        Generate diffs with <n> lines of context instead of
        the usual three. Implies "-p".
@@ -40,6 +36,9 @@ endif::git-format-patch[]
 --patch-with-raw::
        Synonym for "-p --raw".
 
+--patience::
+       Generate a diff using the "patience diff" algorithm.
+
 --stat[=width[,name-width]]::
        Generate a diffstat.  You can override the default
        output width for 80-column terminal by "--stat=width".
@@ -65,6 +64,9 @@ endif::git-format-patch[]
        can be set with "--dirstat=limit". Changes in a child directory is not
        counted for the parent directory, unless "--cumulative" is used.
 
+--dirstat-by-file[=limit]::
+       Same as --dirstat, but counts changed files instead of lines.
+
 --summary::
        Output a condensed summary of extended header information
        such as creations, renames and mode changes.
@@ -85,6 +87,13 @@ endif::git-format-patch[]
        Show only names and status of changed files. See the description
        of the `--diff-filter` option on what the status letters mean.
 
+--submodule[=<format>]::
+       Chose the output format for submodule differences. <format> can be one of
+       'short' and 'log'. 'short' just shows pairs of commit names, this format
+       is used when this option is not given. 'log' is the default value for this
+       option and lists the commits in that commit range like the 'summary'
+       option of linkgit:git-submodule[1] does.
+
 --color::
        Show colored diff.
 
@@ -92,8 +101,22 @@ endif::git-format-patch[]
        Turn off colored diff, even when the configuration file
        gives the default to color output.
 
---color-words::
-       Show colored word diff, i.e. color words which have changed.
+--color-words[=<regex>]::
+       Show colored word diff, i.e., color words which have changed.
+       By default, words are separated by whitespace.
++
+When a <regex> is specified, every non-overlapping match of the
+<regex> is considered a word.  Anything between these matches is
+considered whitespace and ignored(!) for the purposes of finding
+differences.  You may want to append `|[^[:space:]]` to your regular
+expression to make sure that it matches all non-whitespace characters.
+A match that contains a newline is silently truncated(!) at the
+newline.
++
+The regex can also be set via a diff driver or configuration option, see
+linkgit:gitattributes[1] or linkgit:git-config[1].  Giving it explicitly
+overrides any diff driver or configuration setting.  Diff drivers
+override configuration settings.
 
 --no-renames::
        Turn off rename detection, even when the configuration
@@ -106,9 +129,9 @@ endif::git-format-patch[]
        --exit-code.
 
 --full-index::
-       Instead of the first handful characters, show full
-       object name of pre- and post-image blob on the "index"
-       line when generating patch format output.
+       Instead of the first handful of characters, show the full
+       pre- and post-image blob object names on the "index"
+       line when generating patch format output.
 
 --binary::
        In addition to --full-index, output "binary diff" that
@@ -117,7 +140,7 @@ endif::git-format-patch[]
 --abbrev[=<n>]::
        Instead of showing the full 40-byte hexadecimal object
        name in diff-raw format output and diff-tree header
-       lines, show only handful hexdigits prefix.  This is
+       lines, show only a partial prefix.  This is
        independent of --full-index option above, which controls
        the diff-patch output format.  Non default number of
        digits can be specified with --abbrev=<n>.
@@ -160,7 +183,10 @@ endif::git-format-patch[]
        number.
 
 -S<string>::
-       Look for differences that contain the change in <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.
 
 --pickaxe-all::
        When -S finds a change, show all the changes in that
@@ -187,30 +213,28 @@ endif::git-format-patch[]
        can name which subdirectory to make the output relative
        to by giving a <path> as an argument.
 
+-a::
 --text::
        Treat all files as text.
 
--a::
-       Shorthand for "--text".
-
 --ignore-space-at-eol::
        Ignore changes in whitespace at EOL.
 
+-b::
 --ignore-space-change::
        Ignore changes in amount of whitespace.  This ignores whitespace
        at line end, and considers all other sequences of one or
        more whitespace characters to be equivalent.
 
--b::
-       Shorthand for "--ignore-space-change".
-
+-w::
 --ignore-all-space::
        Ignore whitespace when comparing lines.  This ignores
        differences even if one line has whitespace where the other
        line has none.
 
--w::
-       Shorthand for "--ignore-all-space".
+--inter-hunk-context=<lines>::
+       Show the context between diff hunks, up to the specified number
+       of lines, thereby fusing hunks that are close to each other.
 
 --exit-code::
        Make the program exit with codes similar to diff(1).