From: Junio C Hamano <gitster@pobox.com>
To: Dave Borowitz <dborowitz@google.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 7/7] Add a config option push.gpgSign for default signed pushes
Date: Mon, 17 Aug 2015 10:13:53 -0700 [thread overview]
Message-ID: <xmqqy4h9et2m.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1439492451-11233-8-git-send-email-dborowitz@google.com> (Dave Borowitz's message of "Thu, 13 Aug 2015 15:00:51 -0400")
Dave Borowitz <dborowitz@google.com> writes:
> ---
Does the lack of sign-off indicate something (like "this is just a
'what do people think?' weatherbaloon not yet a serious submission")?
> +push.gpgSign::
> + May be set to a boolean value, or the string 'if-possible'. A
> + true value causes all pushes to be GPG signed, as if '--signed'
> + is passed to linkgit:git-push[1]. The string 'if-possible'
> + causes pushes to be signed if the server supports it, as if
> + '--signed-if-possible' is passed to 'git push'. A false value
> + may override a value from a lower-priority config file. An
> + explicit command-line flag always overrides this config option.
> diff --git a/builtin/push.c b/builtin/push.c
> index 95a67c5..8972193 100644
> --- a/builtin/push.c
> +++ b/builtin/push.c
> @@ -491,6 +491,26 @@ static int git_push_config(const char *k, const char *v, void *cb)
> return git_default_config(k, v, NULL);
> }
>
> +static void set_push_cert_flags_from_config(int *flags)
> +{
> + const char *value;
> + /* Ignore config if flags were set from command line. */
> + if (*flags & (TRANSPORT_PUSH_CERT_ALWAYS | TRANSPORT_PUSH_CERT_IF_POSSIBLE))
> + return;
This looks somewhat strange. Usually we read from config first and
then from options, so a git_config() callback shouldn't have to
worry about what command line option parser did (because it hasn't
happened yet). Why isn't the addition to support this new variable
done inside existing git_push_config() callback function?
> + if (!git_config_get_value("push.gpgsign", &value)) {
> + switch (git_config_maybe_bool("push.gpgsign", value)) {
> + case 1:
> + *flags |= TRANSPORT_PUSH_CERT_ALWAYS;
> + break;
> + default:
> + if (value && !strcmp(value, "if-possible"))
> + *flags |= TRANSPORT_PUSH_CERT_IF_POSSIBLE;
> + else
> + die(_("Invalid value for 'push.gpgsign'"));
> + }
> + }
> +}
> +
maybe_bool() returns 0 for "false" (and its various spellings), 1
for "true" (and its various spellings) and -1 for "that's not a
bool".
For "A false value may override a value" to be true, we'd need
case 0:
*flags &= ~TRANSPORT_PUSH_CERT_ALWAYS;
break;
or something?
next prev parent reply other threads:[~2015-08-17 17:14 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-13 19:00 [PATCH 0/7] Flags and config to sign pushes by default Dave Borowitz
2015-08-13 19:00 ` [PATCH 1/7] Documentation/git-push.txt: Document when --signed may fail Dave Borowitz
2015-08-14 23:10 ` Junio C Hamano
2015-08-17 18:11 ` Dave Borowitz
2015-08-13 19:00 ` [PATCH 2/7] Documentation/git-send-pack.txt: Flow long synopsis line Dave Borowitz
2015-08-13 19:00 ` [PATCH 3/7] Documentation/git-send-pack.txt: Document --signed Dave Borowitz
2015-08-13 19:00 ` [PATCH 4/7] gitremote-helpers.txt: Document pushcert option Dave Borowitz
2015-08-13 19:00 ` [PATCH 5/7] transport: Remove git_transport_options.push_cert Dave Borowitz
2015-08-14 23:14 ` Junio C Hamano
2015-08-13 19:00 ` [PATCH 6/7] Support signing pushes iff the server supports it Dave Borowitz
2015-08-14 23:22 ` Junio C Hamano
2015-08-19 15:18 ` Dave Borowitz
2015-08-13 19:00 ` [PATCH 7/7] Add a config option push.gpgSign for default signed pushes Dave Borowitz
2015-08-17 17:13 ` Junio C Hamano [this message]
2015-08-17 18:22 ` Dave Borowitz
2015-08-17 19:42 ` Junio C Hamano
2015-08-17 19:47 ` Junio C Hamano
2015-08-17 19:49 ` Dave Borowitz
2015-08-14 11:47 ` [PATCH 0/7] Flags and config to sign pushes by default Chris Packham
2015-08-14 18:12 ` Junio C Hamano
2015-08-14 20:29 ` Dave Borowitz
2015-08-14 20:31 ` Dave Borowitz
2015-08-14 20:45 ` Junio C Hamano
2015-08-14 20:55 ` Dave Borowitz
2015-08-14 21:03 ` Junio C Hamano
2015-08-17 17:21 ` Junio C Hamano
2015-08-17 18:32 ` Dave Borowitz
2015-08-17 18:47 ` Junio C Hamano
2015-08-17 18:54 ` Dave Borowitz
2015-08-17 19:54 ` Junio C Hamano
2015-08-17 20:00 ` Dave Borowitz
2015-08-17 20:34 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqy4h9et2m.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=dborowitz@google.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.