From: Patrick Steinhardt <ps@pks.im>
To: "René Scharfe" <l.s.r@web.de>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH] submodule: use strvec_pushf() for --submodule-prefix
Date: Tue, 27 Feb 2024 08:31:30 +0100 [thread overview]
Message-ID: <Zd2P0irjsaeiSapJ@tanuki> (raw)
In-Reply-To: <8cd983fb-32b9-41c6-a9e7-a485b190488c@web.de>
[-- Attachment #1: Type: text/plain, Size: 3023 bytes --]
On Sun, Feb 25, 2024 at 07:24:39PM +0100, René Scharfe wrote:
> Add the option --submodule-prefix and its argument directly using
> strvec_pushf() instead of via a detour through a strbuf. This is
> shorter, easier to read and doesn't require any explicit cleanup
> afterwards.
This looks obviously good to me. Thanks for this nice simplification!
Patrick
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
> submodule.c | 19 ++++---------------
> 1 file changed, 4 insertions(+), 15 deletions(-)
>
> diff --git a/submodule.c b/submodule.c
> index 213da79f66..40f13a3685 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -1687,8 +1687,6 @@ static int get_next_submodule(struct child_process *cp, struct strbuf *err,
> task = get_fetch_task_from_changed(spf, err);
>
> if (task) {
> - struct strbuf submodule_prefix = STRBUF_INIT;
> -
> child_process_init(cp);
> cp->dir = task->repo->gitdir;
> prepare_submodule_repo_env_in_gitdir(&cp->env);
> @@ -1698,15 +1696,11 @@ static int get_next_submodule(struct child_process *cp, struct strbuf *err,
> strvec_pushv(&cp->args, task->git_args.v);
> strvec_pushv(&cp->args, spf->args.v);
> strvec_push(&cp->args, task->default_argv);
> - strvec_push(&cp->args, "--submodule-prefix");
> + strvec_pushf(&cp->args, "--submodule-prefix=%s%s/",
> + spf->prefix, task->sub->path);
>
> - strbuf_addf(&submodule_prefix, "%s%s/",
> - spf->prefix,
> - task->sub->path);
> - strvec_push(&cp->args, submodule_prefix.buf);
> *task_cb = task;
>
> - strbuf_release(&submodule_prefix);
> string_list_insert(&spf->seen_submodule_names, task->sub->name);
> return 1;
> }
> @@ -1714,12 +1708,8 @@ static int get_next_submodule(struct child_process *cp, struct strbuf *err,
> if (spf->oid_fetch_tasks_nr) {
> struct fetch_task *task =
> spf->oid_fetch_tasks[spf->oid_fetch_tasks_nr - 1];
> - struct strbuf submodule_prefix = STRBUF_INIT;
> spf->oid_fetch_tasks_nr--;
>
> - strbuf_addf(&submodule_prefix, "%s%s/",
> - spf->prefix, task->sub->path);
> -
> child_process_init(cp);
> prepare_submodule_repo_env_in_gitdir(&cp->env);
> cp->git_cmd = 1;
> @@ -1728,8 +1718,8 @@ static int get_next_submodule(struct child_process *cp, struct strbuf *err,
> strvec_init(&cp->args);
> strvec_pushv(&cp->args, spf->args.v);
> strvec_push(&cp->args, "on-demand");
> - strvec_push(&cp->args, "--submodule-prefix");
> - strvec_push(&cp->args, submodule_prefix.buf);
> + strvec_pushf(&cp->args, "--submodule-prefix=%s%s/",
> + spf->prefix, task->sub->path);
>
> /* NEEDSWORK: have get_default_remote from submodule--helper */
> strvec_push(&cp->args, "origin");
> @@ -1737,7 +1727,6 @@ static int get_next_submodule(struct child_process *cp, struct strbuf *err,
> append_oid_to_argv, &cp->args);
>
> *task_cb = task;
> - strbuf_release(&submodule_prefix);
> return 1;
> }
>
> --
> 2.44.0
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2024-02-27 7:31 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-25 18:24 [PATCH] submodule: use strvec_pushf() for --submodule-prefix René Scharfe
2024-02-27 7:31 ` Patrick Steinhardt [this message]
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=Zd2P0irjsaeiSapJ@tanuki \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=l.s.r@web.de \
/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.