diff.c: do not use pathname comparison to tell renames
The final output from diff used to compare pathnames between preimage and postimage to tell if the filepair is a rename/copy. By explicitly marking the filepair created by diffcore_rename(), the output routine, resolve_rename_copy(), does not have to do so anymore. This helps feeding a filepair that has different pathnames in one and two elements to the diff machinery (most notably, comparing two blobs). Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
@ -53,11 +53,12 @@ struct diff_filepair {
|
||||
char status; /* M C R N D U (see Documentation/diff-format.txt) */
|
||||
unsigned source_stays : 1; /* all of R/C are copies */
|
||||
unsigned broken_pair : 1;
|
||||
unsigned renamed_pair : 1;
|
||||
};
|
||||
#define DIFF_PAIR_UNMERGED(p) \
|
||||
(!DIFF_FILE_VALID((p)->one) && !DIFF_FILE_VALID((p)->two))
|
||||
|
||||
#define DIFF_PAIR_RENAME(p) (strcmp((p)->one->path, (p)->two->path))
|
||||
#define DIFF_PAIR_RENAME(p) ((p)->renamed_pair)
|
||||
|
||||
#define DIFF_PAIR_BROKEN(p) \
|
||||
( (!DIFF_FILE_VALID((p)->one) != !DIFF_FILE_VALID((p)->two)) && \
|
||||
|
Reference in New Issue
Block a user