threads / patch / 17423

patchbuiltin-apply.c: do not set bogus mode in check_preimage() for deleted path

Subject: [PATCH] builtin-apply.c: do not set bogus mode in check_preimage() for deleted path

## tl;dr

2 messages between Jan 28, 2009 and Jan 29, 2009. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Junio C Hamano· Jan 28, 2009, 23:27 UTC · lore
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(-)
Show changes to builtin-apply.c +1 −1
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
Don Zickus· Jan 29, 2009, 01:46 UTC · re: Junio C Hamano · lore

Re: [PATCH] builtin-apply.c: do not set bogus mode in check_preimage() for deleted path

On Wed, Jan 28, 2009 at 03:27:54PM -0800, Junio C Hamano wrote:
>    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.

Actually deleting patches weren't that interesting to me, I deal more with patches modifying the same patch repeatedly. Regardless the patch below seems ok to me.

Acked-by: Don Zickus <dzickus@redhat.com>
Show 20 quoted lines
> 
>  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
> 

← back to recent threads