提交 9659df52 编写于 作者: A Andreas Gruenbacher 提交者: Junio C Hamano

Clarify and extend the "git diff" format documentation

Move the similarity and dissimilarity index header description closer to
where those extended headers are described.

Describe and/or clarify the format used for file modes, pathnames, and
the index header.

Document that all "old" files refer to the state before applying the
*entire* output, and all "new" files refer to the state thereafter.
Signed-off-by: NAndreas Gruenbacher <agruen@suse.de>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 9fbd8986
...@@ -9,16 +9,15 @@ patch file. You can customize the creation of such patches via the ...@@ -9,16 +9,15 @@ patch file. You can customize the creation of such patches via the
GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables. GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.
What the -p option produces is slightly different from the traditional What the -p option produces is slightly different from the traditional
diff format. diff format:
1. It is preceded with a "git diff" header, that looks like 1. It is preceded with a "git diff" header that looks like this:
this:
diff --git a/file1 b/file2 diff --git a/file1 b/file2
+ +
The `a/` and `b/` filenames are the same unless rename/copy is The `a/` and `b/` filenames are the same unless rename/copy is
involved. Especially, even for a creation or a deletion, involved. Especially, even for a creation or a deletion,
`/dev/null` is _not_ used in place of `a/` or `b/` filenames. `/dev/null` is _not_ used in place of the `a/` or `b/` filenames.
+ +
When rename/copy is involved, `file1` and `file2` show the When rename/copy is involved, `file1` and `file2` show the
name of the source file of the rename/copy and the name of name of the source file of the rename/copy and the name of
...@@ -37,18 +36,39 @@ the file that rename/copy produces, respectively. ...@@ -37,18 +36,39 @@ the file that rename/copy produces, respectively.
similarity index <number> similarity index <number>
dissimilarity index <number> dissimilarity index <number>
index <hash>..<hash> <mode> index <hash>..<hash> <mode>
+
3. TAB, LF, double quote and backslash characters in pathnames File modes are printed as 6-digit octal numbers including the file type
are represented as `\t`, `\n`, `\"` and `\\`, respectively. and file permission bits.
If there is need for such substitution then the whole +
pathname is put in double quotes. Path names in extended headers do not include the `a/` and `b/` prefixes.
+
The similarity index is the percentage of unchanged lines, and The similarity index is the percentage of unchanged lines, and
the dissimilarity index is the percentage of changed lines. It the dissimilarity index is the percentage of changed lines. It
is a rounded down integer, followed by a percent sign. The is a rounded down integer, followed by a percent sign. The
similarity index value of 100% is thus reserved for two equal similarity index value of 100% is thus reserved for two equal
files, while 100% dissimilarity means that no line from the old files, while 100% dissimilarity means that no line from the old
file made it into the new one. file made it into the new one.
+
The index line includes the SHA-1 checksum before and after the change.
The <mode> is included if the file mode does not change; otherwise,
separate lines indicate the old and the new mode.
3. TAB, LF, double quote and backslash characters in pathnames
are represented as `\t`, `\n`, `\"` and `\\`, respectively.
If there is need for such substitution then the whole
pathname is put in double quotes.
4. All the `file1` files in the output refer to files before the
commit, and all the `file2` files refer to files after the commit.
It is incorrect to apply each change to each file sequentially. For
example, this patch will swap a and b:
diff --git a/a b/b
rename from a
rename to b
diff --git a/b b/a
rename from b
rename to a
combined diff format combined diff format
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册