aboutsummaryrefslogtreecommitdiff
path: root/diffcore.h
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-05-27 15:55:55 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-29 11:17:43 -0700
commit15d061b435a7e3b6bead39df3889f4af78c4b00a (patch)
treee19d482170bad5d14e9b3c581432576bcca95149 /diffcore.h
parent367cec1c024c3849cb32eaac15884a4adfefe1de (diff)
downloadgit-15d061b435a7e3b6bead39df3889f4af78c4b00a.tar.gz
git-15d061b435a7e3b6bead39df3889f4af78c4b00a.tar.xz
[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>
Diffstat (limited to 'diffcore.h')
-rw-r--r--diffcore.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/diffcore.h b/diffcore.h
index e9cf2edcf..462014b65 100644
--- a/diffcore.h
+++ b/diffcore.h
@@ -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))