SYNOPSIS
--------
-git diff *
+'git diff' *
DESCRIPTION
-----------
-The diff commands `git-diff-index`, `git-diff-files`, and `git-diff-tree`
+The diff commands 'git-diff-index', 'git-diff-files', and 'git-diff-tree'
can be told to manipulate differences they find in
-unconventional ways before showing `diff` output. The manipulation
+unconventional ways before showing 'diff' output. The manipulation
is collectively called "diffcore transformation". This short note
-describes what they are and how to use them to produce diff outputs
-that are easier to understand than the conventional kind.
+describes what they are and how to use them to produce 'diff' output
+that is easier to understand than the conventional kind.
The chain of operation
----------------------
-The `git-diff-{asterisk}` family works by first comparing two sets of
+The 'git-diff-{asterisk}' family works by first comparing two sets of
files:
- - `git-diff-index` compares contents of a "tree" object and the
+ - 'git-diff-index' compares contents of a "tree" object and the
working directory (when '\--cached' flag is not used) or a
"tree" object and the index file (when '\--cached' flag is
used);
- - `git-diff-files` compares contents of the index file and the
+ - 'git-diff-files' compares contents of the index file and the
working directory;
- - `git-diff-tree` compares contents of two "tree" objects;
+ - 'git-diff-tree' compares contents of two "tree" objects;
In all of these cases, the commands themselves compare
corresponding paths in the two sets of files. The result of
- diffcore-pickaxe
- diffcore-order
-These are applied in sequence. The set of filepairs `git-diff-{asterisk}`
+These are applied in sequence. The set of filepairs 'git-diff-{asterisk}'
commands find are used as the input to diffcore-pathspec, and
the output from diffcore-pathspec is used as the input to the
next transformation. The final result is then passed to the
output routine and generates either diff-raw format (see Output
-format sections of the manual for `git-diff-{asterisk}` commands) or
+format sections of the manual for 'git-diff-{asterisk}' commands) or
diff-patch format.
The first transformation in the chain is diffcore-pathspec, and
is controlled by giving the pathname parameters to the
-`git-diff-{asterisk}` commands on the command line. The pathspec is used
+'git-diff-{asterisk}' commands on the command line. The pathspec is used
to limit the world diff operates in. It removes the filepairs
outside the specified set of pathnames. E.g. If the input set
of filepairs included:
junkfile entry would be removed from the list because only "myfile"
is under consideration.
-Implementation note. For performance reasons, `git-diff-tree`
+Implementation note. For performance reasons, 'git-diff-tree'
uses the pathname parameters on the command line to cull set of
filepairs it feeds the diffcore mechanism itself, and does not
use diffcore-pathspec, but the end result is the same.
----------------------------------------------------
The second transformation in the chain is diffcore-break, and is
-controlled by the -B option to the `git-diff-{asterisk}` commands. This is
+controlled by the -B option to the 'git-diff-{asterisk}' commands. This is
used to detect a filepair that represents "complete rewrite" and
break such filepair into two filepairs that represent delete and
create. E.g. If the input contained this filepair:
This transformation is used to detect renames and copies, and is
controlled by the -M option (to detect renames) and the -C option
-(to detect copies as well) to the `git-diff-{asterisk}` commands. If the
+(to detect copies as well) to the 'git-diff-{asterisk}' commands. If the
input contained these filepairs:
------------------------------------------------
8/10 = 80%).
Note. When the "-C" option is used with `\--find-copies-harder`
-option, `git-diff-{asterisk}` commands feed unmodified filepairs to
+option, 'git-diff-{asterisk}' commands feed unmodified filepairs to
diffcore mechanism as well as modified ones. This lets the copy
detector consider unmodified files as copy source candidates at
the expense of making it slower. Without `\--find-copies-harder`,
-`git-diff-{asterisk}` commands can detect copies only if the file that was
+'git-diff-{asterisk}' commands can detect copies only if the file that was
copied happened to have been modified in the same changeset.
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-{asterisk}`
+-S option and the `\--pickaxe-all` option to the 'git-diff-{asterisk}'
commands.
When diffcore-pickaxe is in use, it checks if there are
This is used to reorder the filepairs according to the user's
(or project's) taste, and is controlled by the -O option to the
-`git-diff-{asterisk}` commands.
+'git-diff-{asterisk}' commands.
This takes a text file each of whose lines is a shell glob
pattern. Filepairs that match a glob pattern on an earlier line