upload-pack: send keepalive packets during pack computation
[gitweb.git] / Documentation / diff-options.txt
index 66624a17698ac91cfcd6d45d1af6024c4bf066d9..104579dc75128811e475d408035569ac09f3283b 100644 (file)
@@ -52,20 +52,49 @@ endif::git-format-patch[]
 --patience::
        Generate a diff using the "patience diff" algorithm.
 
+--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.  You can override the default
-       output width for 80-column terminal by `--stat=<width>`.
-       The width of the filename part can be controlled by
-       giving another width to it separated by a comma.
+       Generate a diffstat. By default, as much space as necessary
+       will be used for the filename part, and the rest for the graph
+       part. Maximum width defaults to terminal width, or 80 columns
+       if not connected to a terminal, and can be overridden by
+       `<width>`. The width of the filename part can be limited by
+       giving another width `<name-width>` after a comma. The width
+       of the graph part can be limited by using
+       `--stat-graph-width=<width>` (affects all commands generating
+       a stat graph) or by setting `diff.statGraphWidth=<width>`
+       (does not affect `git format-patch`).
        By giving a third parameter `<count>`, you can limit the
-       output to the first `<count>` lines, followed by
-       `...` if there are more.
+       output to the first `<count>` lines, followed by `...` if
+       there are more.
 +
 These parameters can also be set individually with `--stat-width=<width>`,
 `--stat-name-width=<name-width>` and `--stat-count=<count>`.
 
 --numstat::
-       Similar to `\--stat`, but shows number of added and
+       Similar to `--stat`, but shows number of added and
        deleted lines in decimal notation and pathname without
        abbreviation, to make it more machine friendly.  For
        binary files, outputs two `-` instead of saying
@@ -156,16 +185,18 @@ any of those replacements occurred.
        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.
+       Specify how differences in submodules are shown.  When `--submodule`
+       or `--submodule=log` is given, the 'log' format is used.  This format lists
+       the commits in the range like linkgit:git-submodule[1] `summary` does.
+       Omitting the `--submodule` option or specifying `--submodule=short`,
+       uses the 'short' format. This format just shows the names of the commits
+       at the beginning and end of the range.  Can be tweaked via the
+       `diff.submodule` configuration variable.
 
 --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.
@@ -272,7 +303,7 @@ few lines that happen to match textually as the context, but as a
 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).
 +
@@ -296,9 +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.
+       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%`.
 
 -C[<n>]::
 --find-copies[=<n>]::
@@ -408,6 +443,10 @@ endif::git-format-patch[]
        Show the context between diff hunks, up to the specified number
        of lines, thereby fusing hunks that are close to each other.
 
+-W::
+--function-context::
+       Show whole surrounding functions of changes.
+
 ifndef::git-format-patch[]
 ifndef::git-log[]
 --exit-code::