[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>
This commit is contained in:
Junio C Hamano
2005-05-25 15:07:08 -07:00
committed by Linus Torvalds
parent 908bddab96
commit 96716a1976
2 changed files with 25 additions and 14 deletions

View File

@ -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 {