summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-03-30 07:00:42 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-03-30 07:53:05 (GMT)
commite464f4c3119b04712ab87329f3dd4d4f21b0a8a7 (patch)
tree29fabda26b9d057d6137fbea57a15a09da3b53af
parent0c8b106b020421c346532351af36028bfdda4c37 (diff)
downloadgit-e464f4c3119b04712ab87329f3dd4d4f21b0a8a7.zip
git-e464f4c3119b04712ab87329f3dd4d4f21b0a8a7.tar.gz
git-e464f4c3119b04712ab87329f3dd4d4f21b0a8a7.tar.bz2
assume unchanged git: diff-index fix.
When the executable bit is untrustworthy and when we are comparing the tree with the working tree, we tried to reuse the mode bits recorded in the index incorrectly (the computation was bogus on little endian architectures). Just use mode from index when it is a regular file. Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--diff-index.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/diff-index.c b/diff-index.c
index 12a9418..e376d65 100644
--- a/diff-index.c
+++ b/diff-index.c
@@ -36,9 +36,7 @@ static int get_stat_data(struct cache_entry *ce,
changed = ce_match_stat(ce, &st, 0);
if (changed) {
mode = create_ce_mode(st.st_mode);
- if (!trust_executable_bit &&
- S_ISREG(mode) && S_ISREG(ce->ce_mode) &&
- ((mode ^ ce->ce_mode) == 0111))
+ if (!trust_executable_bit && S_ISREG(st.st_mode))
mode = ce->ce_mode;
sha1 = no_sha1;
}