From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Teng Long <dyroneteng@gmail.com>
Cc: git@vger.kernel.org, jonathantanmy@google.com
Subject: Re: [PATCH v1 1/3] packfile-uri: http and https as default value of `--uri-protocol`
Date: Sat, 21 Aug 2021 10:08:33 +0200 [thread overview]
Message-ID: <87fsv3gqv3.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <0754ea6472f2665a5fe77de080434d3734c67259.1628845748.git.dyroneteng@gmail.com>
On Fri, Aug 13 2021, Teng Long wrote:
> HTTP(S) is usually one of the most common protocols, using "http" and
> "https" as the default parameter values of `--uri-protocol`, which can
> simplify the use of packfile-uri feature on client side when run a
> git-clone or git-fetch.
>
> Signed-off-by: Teng Long <dyroneteng@gmail.com>
> ---
> builtin/pack-objects.c | 18 +++++++++++++++---
> fetch-pack.c | 13 ++++++++-----
> 2 files changed, 23 insertions(+), 8 deletions(-)
>
> diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
> index de00adbb9e..5f6db92a4c 100644
> --- a/builtin/pack-objects.c
> +++ b/builtin/pack-objects.c
> @@ -3892,6 +3892,18 @@ static int option_parse_unpack_unreachable(const struct option *opt,
> return 0;
> }
>
> +static int option_parse_uri_protocol(const struct option *opt,
> + const char *arg, int unset)
> +{
> + if (!arg) {
> + string_list_append(&uri_protocols, "http");
> + string_list_append(&uri_protocols, "https");
> + } else {
> + string_list_append(&uri_protocols, arg);
> + }
> + return 0;
> +}
> +
> int cmd_pack_objects(int argc, const char **argv, const char *prefix)
> {
> int use_internal_rev_list = 0;
> @@ -3995,9 +4007,9 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
> N_("do not pack objects in promisor packfiles")),
> OPT_BOOL(0, "delta-islands", &use_delta_islands,
> N_("respect islands during delta compression")),
> - OPT_STRING_LIST(0, "uri-protocol", &uri_protocols,
> - N_("protocol"),
> - N_("exclude any configured uploadpack.blobpackfileuri with this protocol")),
> + OPT_CALLBACK_F(0, "uri-protocol", NULL, N_("protocol"),
> + N_("exclude any configured uploadpack.blobpackfileuri with this protocol"),
> + PARSE_OPT_OPTARG, option_parse_uri_protocol),
> OPT_END(),
> };
>
> diff --git a/fetch-pack.c b/fetch-pack.c
> index c135635e34..511a892d4c 100644
> --- a/fetch-pack.c
> +++ b/fetch-pack.c
> @@ -1755,11 +1755,14 @@ static void fetch_pack_config(void)
> git_config_get_bool("transfer.fsckobjects", &transfer_fsck_objects);
> git_config_get_bool("transfer.advertisesid", &advertise_sid);
> if (!uri_protocols.nr) {
> - char *str;
> -
> - if (!git_config_get_string("fetch.uriprotocols", &str) && str) {
> - string_list_split(&uri_protocols, str, ',', -1);
> - free(str);
> + const char *value;
> +
> + if (!git_config_get_value("fetch.uriprotocols", &value)) {
> + if (!value || !strcmp(value, "")) {
> + string_list_append(&uri_protocols, "http");
> + string_list_append(&uri_protocols, "https");
> + } else
> + string_list_split(&uri_protocols, value, ',', -1);
> }
> }
Isn't this adding support for:
[fetch]
uriProtocols
I.e. the case where it's an existing key that we'll get a NULL from,
ditto the ="" case.
Partially this issue pre-dates your series, but I think code here is
rather unclear because we keep using the same comma-delimited
representation we want in the protocol for too long in fetch-pack.c et
al.
But also, if we're going to make http/https the default, wouldn't
parsing config/options it, and then interpreting the empty list as that
default, as opposed to injecting it? Or have I misunderstood the intent
here...?
next prev parent reply other threads:[~2021-08-21 8:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-13 9:14 [PATCH v1 0/3] packfile-uri: http and https as default value of `--uri-protocol` Teng Long
2021-08-13 9:14 ` [PATCH v1 1/3] " Teng Long
2021-08-21 8:08 ` Ævar Arnfjörð Bjarmason [this message]
2021-08-13 9:14 ` [PATCH v1 2/3] git-pack-objects.txt: introduce `--uri-protocol` option Teng Long
2021-08-21 8:05 ` Ævar Arnfjörð Bjarmason
2021-08-13 9:14 ` [PATCH v1 3/3] t5702: `fetch.uriprotocols` is configured without value Teng Long
2021-08-21 8:10 ` [PATCH v1 0/3] packfile-uri: http and https as default value of `--uri-protocol` Ævar Arnfjörð Bjarmason
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=87fsv3gqv3.fsf@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=dyroneteng@gmail.com \
--cc=git@vger.kernel.org \
--cc=jonathantanmy@google.com \
/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.