diff options
author | Junio C Hamano <junkio@cox.net> | 2006-11-22 16:33:32 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-11-22 16:36:49 -0800 |
commit | 2bbaaed9eefa92e8a17e74ec5f9b87ecdc7a5949 (patch) | |
tree | acd44cdce2d8a530bdb63d5c0a6fa35648a50b91 /read-cache.c | |
parent | 5d1faf8791fa85ba9be2282900d4f704c7790648 (diff) | |
download | git-2bbaaed9eefa92e8a17e74ec5f9b87ecdc7a5949.tar.gz |
trust-executable-bit: fix breakage for symlinks
An earlier commit f28b34a broke symlinks when trust-executable-bit
is not set because it incorrectly assumed that everything was a
regular file.
Reported by Juergen Ruehle.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/read-cache.c b/read-cache.c index 0f5fb5bc33..eae4745d28 100644 --- a/read-cache.c +++ b/read-cache.c @@ -347,13 +347,13 @@ int add_file_to_index(const char *path, int verbose) ce->ce_mode = create_ce_mode(st.st_mode); if (!trust_executable_bit) { /* If there is an existing entry, pick the mode bits - * from it, otherwise force to 644. + * from it, otherwise assume unexecutable. */ int pos = cache_name_pos(path, namelen); if (pos >= 0) ce->ce_mode = active_cache[pos]->ce_mode; - else - ce->ce_mode = create_ce_mode(S_IFREG | 0644); + else if (S_ISREG(st.st_mode)) + ce->ce_mode = create_ce_mode(S_IFREG | 0666); } if (index_path(ce->sha1, path, &st, 1)) |