summaryrefslogtreecommitdiff
path: root/diffcore.h
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-05-25 15:07:08 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-25 15:21:57 -0700
commit96716a197658e069557e7615ce2019107d72225e (patch)
treed97f470b9c2ea0eaa0a8b41c0db510a11aaf6846 /diffcore.h
parent908bddab96230ed6d43726a8464057ad4c32d1a1 (diff)
downloadgit-96716a197658e069557e7615ce2019107d72225e.tar.gz
[PATCH] Fix type-change handling when assigning the status code to filepairs.
The interim single-liner '?' fix resulted delete entries that should not have emitted coming out in the output as an unintended side effect; I caught this with the "rename" test in the test suite. This patch instead fixes the code that assigns the status code to each filepair. I verified this does not break the testcase in udev.git tree Kay Sievers gave us, by running git-diff-tree on that tree which showed 21 file to symlink changes. 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.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/diffcore.h b/diffcore.h
index 4610168251..092eecce23 100644
--- a/diffcore.h
+++ b/diffcore.h
@@ -45,6 +45,9 @@ struct diff_filepair {
#define DIFF_PAIR_UNMERGED(p) \
(!DIFF_FILE_VALID((p)->one) && !DIFF_FILE_VALID((p)->two))
+#define DIFF_PAIR_TYPE_CHANGED(p) \
+ ((S_IFMT & (p)->one->mode) != (S_IFMT & (p)->two->mode))
+
extern int diff_unmodified_pair(struct diff_filepair *);
struct diff_queue_struct {