From b6d8f309d9bbd8193d9b73eb41c6fcdaa8001298 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 23 May 2005 14:55:33 -0700 Subject: [PATCH] diff-raw format update take #2. This changes the diff-raw format again, following the mailing list discussion. The new format explicitly expresses which one is a rename and which one is a copy. The documentation and tests are updated to match this change. Signed-off-by: Junio C Hamano Signed-off-by: Linus Torvalds --- Documentation/diff-format.txt | 42 ++++++++++++++++++++++----------------- Documentation/git-diff-helper.txt | 18 +---------------- 2 files changed, 25 insertions(+), 35 deletions(-) (limited to 'Documentation') diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt index 7e9a515ad7..f85a605f0a 100644 --- a/Documentation/diff-format.txt +++ b/Documentation/diff-format.txt @@ -19,28 +19,34 @@ git-diff-files [...]:: An output line is formatted this way: - ':' ' ' ' ' ' ' I I L - -By default, I and L are '\t' and '\n' respectively. When '-z' -flag is in effect, both I and L are '\0'. - -In each , and pair, left hand side describes -the left hand side of what is being compared ( in -git-diff-cache, in git-diff-tree, cache contents in -git-diff-files). Non-existence is shown by having 000000 in the - column. That is, 000000 appears as the first for -newly created files, and as the second for deleted files. - -Usually two 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 , old name and -new name. +in-place edit :100644 100644 bcd1234... 0123456... M file0 +copy-edit :100644 100644 abcd123... 1234567... C68 file1 file2 +rename-edit :100644 100644 abcd123... 1234567... R86 file1 file3 +create :000000 100644 0000000... 1234567... N file4 +delete :100644 000000 1234567... 0000000... D file5 +unmerged :000000 000000 0000000... 0000000... U file6 + +That is, from the left to the right: + + (1) a colon. + (2) mode for "src"; 000000 if creation or unmerged. + (3) a space. + (4) mode for "dst"; 000000 if deletion or unmerged. + (5) a space. + (6) sha1 for "src"; 0{40} if creation or unmerged. + (7) a space. + (8) sha1 for "dst"; 0{40} if creation, unmerged or "look at work tree". + (9) status, followed by similarlity index number only for C and R. + (10) a tab or a NUL when '-z' option is used. + (11) path for "src" + (12) a tab or a NUL when '-z' option is used; only exists for C or R. + (13) path for "dst"; only exists for C or R. + (14) an LF or a NUL when '-z' option is used, to terminate the record. 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 5be4a4...... 000000...... file.c file.c - + :100644 100644 5be4a4...... 000000...... M file.c Generating patches with -p -------------------------- diff --git a/Documentation/git-diff-helper.txt b/Documentation/git-diff-helper.txt index 2036c6cc1b..90342c9125 100644 --- a/Documentation/git-diff-helper.txt +++ b/Documentation/git-diff-helper.txt @@ -9,7 +9,7 @@ git-diff-helper - Generates patch format output for git-diff-* SYNOPSIS -------- -'git-diff-helper' [-z] [-R] [-M] [-C] [-S] +'git-diff-helper' [-z] [-S] DESCRIPTION ----------- @@ -21,22 +21,6 @@ OPTIONS -z:: \0 line termination on input --R:: - Output diff in reverse. This is useful for displaying output from - "git-diff-cache" which always compares tree with cache or working - file. E.g. - - git-diff-cache | git-diff-helper -R file.c - - would show a diff to bring the working file back to what - is in the . - --M:: - Detect renames. - --C:: - Detect copies as well as renames. - -S:: Look for differences that contains the change in . -- cgit v1.2.3