Re: [PATCH] sequencer: fix gpg option passed to octopus merge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the patch Samuel

On 12/10/2020 11:34, Johannes Schindelin wrote:
Hi,

On Sun, 11 Oct 2020, brian m. carlson wrote:

On 2020-10-11 at 22:48:04, Samuel Čavoj wrote:
When performing octopus merges with interactive rebase with gpgsign
enabled (either using rebase -S or config commit.gpgsign), the operation
would fail on the merge. Instead of "-S%s" with the key id substituted,
only the bare key id would get passed to the underlying merge command,
which tried to interpret it as a ref.

Signed-off-by: Samuel Čavoj <samuel@xxxxxxxxx>
---
It is unclear to me whether I should have based this off of maint or
master, master made more sense to me. I apologize if maint was the
correct one, please tell and I will resubmit.
---
  sequencer.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sequencer.c b/sequencer.c
index 00acb12496..88ccff4838 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -3677,7 +3677,7 @@ static int do_merge(struct repository *r,
  		strvec_push(&cmd.args, "-F");
  		strvec_push(&cmd.args, git_path_merge_msg(r));
  		if (opts->gpg_sign)
-			strvec_push(&cmd.args, opts->gpg_sign);
+			strvec_pushf(&cmd.args, "-S%s", opts->gpg_sign);

Yeah, this seems obviously correct, and it's very similar to what we do
elsewhere in the file.
In run_git_commit() we do

	if (opts->gpg_sign)
		strvec_pushf(&cmd.args, "-S%s", opts->gpg_sign);
	else
		strvec_push(&cmd.args, "--no-gpg-sign");

I'm not immediately clear why we pass --no-gpg-sign when opts->gpg_sign isn't set but it makes me wonder if we should be doing that here as well

 This will also handle the case where the option
is empty (because we want to do autodetection of the key to sign)
correctly as well.

ACK

It is unclear to me whether we want to bother introducing a test case for
this; Octopus merges are somewhat rare...

This code path is used whenever the user specifies a merge strategy other than "recursive" or they pass merge strategy options to any merge strategy including "recursive" so while octopus merges may be rare the union of everything other than a plain recursive merge may not be.

Best Wishes

Phillip


Ciao,
Dscho





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux