diff mbox series

[v2,2/2] sequencer: pass explicit --no-gpg-sign to merge

Message ID 20201012234901.1356948-2-samuel@cavoj.net (mailing list archive)
State New, archived
Headers show
Series None | expand

Commit Message

Samuel Čavoj Oct. 12, 2020, 11:49 p.m. UTC
The merge subcommand launched for merges with non-default strategy would
use its own default behaviour to decide how to sign commits, regardless
of what opts->gpg_sign was set to. For example the --no-gpg-sign flag
given to rebase explicitly would get ignored, if commit.gpgsign was set
to true.

Signed-off-by: Samuel Čavoj <samuel@cavoj.net>
---
 sequencer.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Junio C Hamano Oct. 13, 2020, 4:46 a.m. UTC | #1
Samuel Čavoj <samuel@cavoj.net> writes:

> The merge subcommand launched for merges with non-default strategy would
> use its own default behaviour to decide how to sign commits, regardless
> of what opts->gpg_sign was set to. For example the --no-gpg-sign flag
> given to rebase explicitly would get ignored, if commit.gpgsign was set
> to true.
>
> Signed-off-by: Samuel Čavoj <samuel@cavoj.net>
> ---
>  sequencer.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/sequencer.c b/sequencer.c
> index 88ccff4838..043d606829 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -3678,6 +3678,8 @@ static int do_merge(struct repository *r,
>  		strvec_push(&cmd.args, git_path_merge_msg(r));
>  		if (opts->gpg_sign)
>  			strvec_pushf(&cmd.args, "-S%s", opts->gpg_sign);
> +		else
> +			strvec_push(&cmd.args, "--no-gpg-sign");
>  
>  		/* Add the tips to be merged */
>  		for (j = to_merge; j; j = j->next)

A test that passes --no-gpg-sign from the command line (because
commit.gpgsign is set in the repository used in these tests) would
be a good thing to have, next to the test you added in [PATCH 1/2].
You'd want to make sure the command line overrides the configured
default by checking that the resulting history are not signed.

Thanks.
Phillip Wood Oct. 13, 2020, 10:03 a.m. UTC | #2
Hi Samuel

On 13/10/2020 00:49, Samuel Čavoj wrote:
> The merge subcommand launched for merges with non-default strategy would
> use its own default behaviour to decide how to sign commits, regardless
> of what opts->gpg_sign was set to. For example the --no-gpg-sign flag
> given to rebase explicitly would get ignored, if commit.gpgsign was set
> to true.

That's a good explanation, thanks very much for adding this patch

Phillip

> 
> Signed-off-by: Samuel Čavoj <samuel@cavoj.net>
> ---
>   sequencer.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/sequencer.c b/sequencer.c
> index 88ccff4838..043d606829 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -3678,6 +3678,8 @@ static int do_merge(struct repository *r,
>   		strvec_push(&cmd.args, git_path_merge_msg(r));
>   		if (opts->gpg_sign)
>   			strvec_pushf(&cmd.args, "-S%s", opts->gpg_sign);
> +		else
> +			strvec_push(&cmd.args, "--no-gpg-sign");
>   
>   		/* Add the tips to be merged */
>   		for (j = to_merge; j; j = j->next)
>
diff mbox series

Patch

diff --git a/sequencer.c b/sequencer.c
index 88ccff4838..043d606829 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -3678,6 +3678,8 @@  static int do_merge(struct repository *r,
 		strvec_push(&cmd.args, git_path_merge_msg(r));
 		if (opts->gpg_sign)
 			strvec_pushf(&cmd.args, "-S%s", opts->gpg_sign);
+		else
+			strvec_push(&cmd.args, "--no-gpg-sign");
 
 		/* Add the tips to be merged */
 		for (j = to_merge; j; j = j->next)