Junio C Hamano <gitster@xxxxxxxxx> writes: > From: Johannes Schindelin <johannes.schindelin@xxxxxx> > Date: Thu, 27 Sep 2018 14:48:17 +0200 > > The `--gpg-sign` option takes an *optional* argument, not a mandatory > one. > > This was discovered as part of the investigation of > https://github.com/git-for-windows/git/issues/1836. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > > * I am sending this out as I want to mimize the number of > non-trivial changes that come into my tree without hitting the > list archive. > > builtin/rebase.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/builtin/rebase.c b/builtin/rebase.c > index a28bfbd62f..43bc6f7915 100644 > --- a/builtin/rebase.c > +++ b/builtin/rebase.c > @@ -1030,8 +1030,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) > OPT_BOOL(0, "autosquash", &options.autosquash, > N_("move commits that begin with " > "squash!/fixup! under -i")), > - OPT_STRING('S', "gpg-sign", &gpg_sign, > - N_("gpg-sign?"), N_("GPG-sign commits")), > + { OPTION_STRING, 'S', "gpg-sign", &gpg_sign, N_("key-id"), > + N_("GPG-sign commits"), > + PARSE_OPT_OPTARG, NULL, (intptr_t) "" }, This allows "--gpg-sign" in addition to "--gpg-sign=ARG" and stores an empty string in place of ARG when accepting the option without arg. The result in gpg_sign is used by checking if the pointer is non-NULL and formatted with xstrfmt("-S%s", gpg_sign). The change looks correct; will squash into what has been queued on 'pu'. Thanks. > OPT_STRING_LIST(0, "whitespace", &whitespace, > N_("whitespace"), N_("passed to 'git apply'")), > OPT_SET_INT('C', 0, &opt_c, N_("passed to 'git apply'"),