[PATCH] The diff-raw format updates.
Update the diff-raw format as Linus and I discussed, except that it does not use sequence of underscore '_' letters to express nonexistence. All '0' mode is used for that purpose instead. The new diff-raw format can express rename/copy, and the earlier restriction that -M and -C _must_ be used with the patch format output is no longer necessary. The patch makes -M and -C flags independent of -p flag, so you need to say git-whatchanged -M -p to get the diff/patch format. Updated are both documentations and tests. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
38c6f78059
commit
81e50eabf0
@ -16,25 +16,30 @@ git-diff-tree [-r] <tree-ish-1> <tree-ish-2> [<pattern>...]::
|
||||
git-diff-files [<pattern>...]::
|
||||
compares the cache and the files on the filesystem.
|
||||
|
||||
The following desription uses "old" and "new" to mean those
|
||||
compared entities.
|
||||
|
||||
For files in old but not in new (i.e. removed):
|
||||
An output line is formatted this way:
|
||||
|
||||
-<mode> \t <type> \t <object> \t <path>
|
||||
':' <mode> ' ' <mode> ' ' <sha1> ' ' <sha1> I <path> I <path> L
|
||||
|
||||
For files not in old but in new (i.e. added):
|
||||
By default, I and L are '\t' and '\n' respectively. When '-z'
|
||||
flag is in effect, both I and L are '\0'.
|
||||
|
||||
+<mode> \t <type> \t <object> \t <path>
|
||||
In each <mode>, <sha1> and <path> pair, left hand side describes
|
||||
the left hand side of what is being compared (<tree-ish> in
|
||||
git-diff-cache, <tree-ish-1> in git-diff-tree, cache contents in
|
||||
git-diff-files). Non-existence is shown by having 000000 in the
|
||||
<mode> column. That is, 000000 appears as the first <mode> for
|
||||
newly created files, and as the second <mode> for deleted files.
|
||||
|
||||
For files that differ:
|
||||
Usually two <path> are the same. When rename/copy detection is
|
||||
used, however, an "create" and another "delete" records can be
|
||||
merged into a single record that has two <path>, old name and
|
||||
new name.
|
||||
|
||||
*<old-mode>-><new-mode> \t <type> \t <old-sha1>-><new-sha1> \t <path>
|
||||
<sha1> is shown as all 0's if new is a file on the filesystem
|
||||
and it is out of sync with the cache. Example:
|
||||
|
||||
<new-sha1> is shown as all 0's if new is a file on the
|
||||
filesystem and it is out of sync with the cache. Example:
|
||||
|
||||
*100644->100644 blob 5be4a4.......->000000....... file.c
|
||||
:100644 100644 5be4a4...... 000000...... file.c file.c
|
||||
|
||||
|
||||
Generating patches with -p
|
||||
|
Reference in New Issue
Block a user