I'm not going to bother you with patches (yet) but I could use a few
eyeballs to check the help usage (and perhaps the option grouping) for
commands that take diff options.
Forget about hiding irrelevant options for this particular command for
now. This is something we can do later.
usage: git range-diff [<options>] <old-base>..<old-tip> <new-base>..<new-tip>
or: git range-diff [<options>] <old-tip>...<new-tip>
or: git range-diff [<options>] <base> <old-tip> <new-tip>
--creation-factor <n>
Percentage by which creation is weighted
--no-dual-color use simple diff colors
Diff output format options
-p, --patch generate patch
-s, --no-patch suppress diff output
-u generate patch
-U, --unified <n> generate diffs with <n> lines context
-W, --function-context
generate diffs with <n> lines context
--raw generate the diff in raw format
--patch-with-raw synonym for '-p --raw'
--patch-with-stat synonym for '-p --stat'
--numstat machine friendly --stat
--shortstat output only the last line of --stat
-X, --dirstat[=<param1,param2>...]
output the distribution of relative amount of changes
for each sub-directory
--cumulative synonym for --dirstat=cumulative
--dirstat-by-file[=<param1,param2>...]
synonym for --dirstat=files,param1,param2...
--check warn if changes introduce conflict markers or
whitespace errors
--summary condensed summary such as creations, renames and mode
changes
--name-only show only names of changed files
--name-status show only names and status of changed files
--stat[=<width>[,<name-width>[,<count>]]]
generate diffstat
--stat-width <width> generate diffstat with a given width
--stat-name-width <width>
generate diffstat with a given name width
--stat-graph-width <width>
generate diffstat with a given graph width
--stat-count <count> generate diffstat with limited lines
--compact-summary generate compact summary in diffstat
--binary output a binary diff that can be applied
--full-index show full pre- and post-image object names on the
"index" lines
--color[=<when>] show colored diff
--ws-error-highlight <kind>
highlight whitespaces errors in the context, old or
new lines in the diff
-z do not munge pathnames and use NULs as output field
terminators in --raw or --numstat
--abbrev[=<n>] use <n> digits to display SHA-1s
--src-prefix <prefix>
show the given source prefix instead of "a/"
--dst-prefix <prefix>
show the given source prefix instead of "b/"
--line-prefix <prefix>
prepend an additional prefix to every line of output
--no-prefix no not show any source or destination prefix
--inter-hunk-context <n>
show context between diff hunks up to the specified
number of lines
--output-indicator-new <char>
specify the character to indicate a new line instead
of '+'
--output-indicator-old <char>
specify the character to indicate an old line instead
of '-'
--output-indicator-context <char>
specify the character to indicate a context instead
of ' '
Diff rename options
-B, --break-rewrites[=<n>[/<m>]]
break complete rewrite changes into pairs of delete
and create
-M, --find-renames[=<n>]
detect renames
-D, --irreversible-delete
omit the preimage for deletes
-C, --find-copies[=<n>]
detect copies
--find-copies-harder use unmodified files as source to find copies
--no-renames disable rename detection
--rename-empty use empty blobs as rename source
--follow continue listing the history of a file beyond renames
-l <n> prevent rename/copy detection if the number of
rename/copy targets exceeds given limit
Diff algorithm options
--minimal produce the smallest possible diff
-w, --ignore-all-space
ignore whitespace when comparing lines
-b, --ignore-space-change
ignore changes in amount of whitespace
--ignore-space-at-eol
ignore changes in whitespace at EOL
--ignore-cr-at-eol ignore carrier-return at the end of line
--ignore-blank-lines ignore changes whose lines are all blank
--indent-heuristic heuristic to shift diff hunk boundaries for easy
reading
--patience generate diff using the "patience diff" algorithm
--histogram generate diff using the "histogram diff" algorithm
--diff-algorithm <algorithm>
choose a diff algorithm
--anchored <text> generate diff using the "anchored diff" algorithm
--word-diff[=<mode>] show word diff, using <mode> to delimit changed words
--word-diff-regex <regex>
use <regex> to decide what a word is
--color-words[=<regex>]
equivalent to --word-diff=color
--word-diff-regex=<regex>
--color-moved[=<mode>]
move lines of code are colored differently
--color-moved-ws <mode>
how white spaces are ignored in --color-moved
Diff other options
--relative[=<prefix>]
when run from subdir, exclude changes outside and
show relative paths
-a, --text treat all files as text
-R swap two inputs, reverse the diff
--exit-code exit with 1 if there were differences, 0 otherwise
--quiet disable all output of the program
--ext-diff allow an external diff helper to be executed
--textconv run external text conversion filters when comparing
binary files
--ignore-submodules[=<when>]
ignore changes to submodules in the diff generation
--submodule[=<format>]
specify how differences in submodules are shown
--ita-invisible-in-index
hide 'git add -N' entries from the index
--ita-visible-in-index
treat 'git add -N' entries as real in the index
-S <string> look for differences that change the number of
occurrences of the specified string
-G <regex> look for differences that change the number of
occurrences of the specified regex
--pickaxe-all show all changes in the changeset with -S or -G
--pickaxe-regex treat <string> in -S as extended POSIX regular
expression
-O <file> override diff.orderFile configuration variable
--find-object <object-id>
look for differences that change the number of
occurrences of the specified object
--diff-filter [(A|C|D|M|R|T|U|X|B)...[*]]
select files by diff type
--output <file> Output to a specific file