[PATCH] builtin-apply.c: do not set bogus mode in check_preimage() for deleted path
If it is deleted, it is deleted. Do not set the current mode to it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
* This updates 1f7903a (builtin-apply: prevent non-explicit permission
changes, 2009-01-02). It should not change the behaviour in the normal
case, because we do not explicitly check the final mode of a deletion
patch. We do check the deletion patch creates an empty result, and we
might want to fix that someday, and at that point the existing code
will break.
Also I suspect this codepath has been broken the use case 7a07841
(git-apply: handle a patch that touches the same path more than once
better, 2008-06-27) wanted to support, and if that is the case, this
would fix it.
builtin-apply.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/builtin-apply.c b/builtin-apply.c
index b415daf..1e7f917 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -2453,7 +2453,7 @@ static int check_preimage(struct patch *patch, struct cache_entry **ce, struct s
if (st_mode != patch->old_mode)
fprintf(stderr, "warning: %s has type %o, expected %o\n",
old_name, st_mode, patch->old_mode);
- if (!patch->new_mode)
+ if (!patch->new_mode && !patch->is_delete)
patch->new_mode = st_mode;
return 0;
--
1.6.1.1.278.g6a817