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@xxxxxx> > --- > 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:
signature.asc
Description: PGP signature