From 35cc4bcd10862db190df9685b7ad221f2a25404f Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 17 Aug 2005 09:01:07 +0200 Subject: [PATCH] When copying or renaming, keep the mode, please Without this patch, git-apply does not retain the mode when renaming or copying files. [jc: Good catch, Johannes. I added a test case to demonstrate the breackage in the original.] Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- apply.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'apply.c') diff --git a/apply.c b/apply.c index 81607c0fb6..7c1a8411f2 100644 --- a/apply.c +++ b/apply.c @@ -1043,8 +1043,12 @@ static int check_patch(struct patch *patch) return error("%s: already exists in working directory", new_name); if (errno != ENOENT) return error("%s: %s", new_name, strerror(errno)); - if (!patch->new_mode) - patch->new_mode = S_IFREG | 0644; + if (!patch->new_mode) { + if (patch->is_new) + patch->new_mode = S_IFREG | 0644; + else + patch->new_mode = patch->old_mode; + } } if (new_name && old_name) { -- cgit v1.3-5-g9baa