[PATCH] Fix the way diffcore-rename records unremoved source.
Earier version of diffcore-rename used to keep unmodified filepair in its output so that the last stage of the processing that tells renames from copies can make all of rename/copy to copies. However this had a bad interaction with other diffcore filters that wanted to run after diffcore-rename, in that such unmodified filepair must be retained for proper distinction between renames and copies to happen. This patch fixes the problem by changing the way diffcore-rename records the information needed to distinguish "all are copies" case and "the last one is a rename" case. 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
367cec1c02
commit
15d061b435
@ -39,8 +39,11 @@ extern void diff_free_filespec_data(struct diff_filespec *);
|
||||
struct diff_filepair {
|
||||
struct diff_filespec *one;
|
||||
struct diff_filespec *two;
|
||||
int score; /* only valid when one and two are different paths */
|
||||
int status; /* M C R N D U (see Documentation/diff-format.txt) */
|
||||
unsigned short int score; /* only valid when one and two are
|
||||
* different paths
|
||||
*/
|
||||
char source_stays; /* all of R/C are copies */
|
||||
char status; /* M C R N D U (see Documentation/diff-format.txt) */
|
||||
};
|
||||
#define DIFF_PAIR_UNMERGED(p) \
|
||||
(!DIFF_FILE_VALID((p)->one) && !DIFF_FILE_VALID((p)->two))
|
||||
|
||||
Reference in New Issue
Block a user