diff options
author | Junio C Hamano <junkio@cox.net> | 2005-05-21 19:42:18 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-21 22:49:19 -0700 |
commit | 81e50eabf06dd68e8e62a9b697eaf60904c58b22 (patch) | |
tree | f7cf8566f2a72a669b6e4bbaca0cf6ca5a781dd3 /Documentation/diff-format.txt | |
parent | 38c6f78059c3060db6f94b24f4a90063a91090d2 (diff) | |
download | git-81e50eabf06dd68e8e62a9b697eaf60904c58b22.tar.gz git-81e50eabf06dd68e8e62a9b697eaf60904c58b22.tar.xz |
[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>
Diffstat (limited to 'Documentation/diff-format.txt')
-rw-r--r-- | Documentation/diff-format.txt | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt index 9e6453997..7e9a515ad 100644 --- a/Documentation/diff-format.txt +++ b/Documentation/diff-format.txt @@ -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 |