Subject: Re: [PATCH v2 1/8] fetch-negotiator: add specific noop initializor

From: Junio C Hamano <[email-masked]>
Date: Thu, 24 Feb 2022 22:19:48 -0800

"Robert Coup via GitGitGadget" <[email-masked]> writes:

> From: Robert Coup <[email-masked]>
>
> Add a specific initializor for the noop fetch negotiator. This is

"initializer"?

> introduced to support allowing partial clones to skip commit negotiation
> when fetching to repair or apply a modified filter.
>
> Signed-off-by: Robert Coup <[email-masked]>
> ---
>  fetch-negotiator.c | 5 +++++
>  fetch-negotiator.h | 8 ++++++++
>  2 files changed, 13 insertions(+)
>
> diff --git a/fetch-negotiator.c b/fetch-negotiator.c
> index 874797d767b..be383367f55 100644
> --- a/fetch-negotiator.c
> +++ b/fetch-negotiator.c
> @@ -23,3 +23,8 @@ void fetch_negotiator_init(struct repository *r,
>  		return;
>  	}
>  }
> +
> +void fetch_negotiator_init_noop(struct fetch_negotiator *negotiator)
> +{
> +	noop_negotiator_init(negotiator);
> +}

Puzzling.  What makes this better than allowing noop-negotiator-init
to be called directly?

> diff --git a/fetch-negotiator.h b/fetch-negotiator.h
> index ea78868504b..e348905a1f0 100644
> --- a/fetch-negotiator.h
> +++ b/fetch-negotiator.h
> @@ -53,7 +53,15 @@ struct fetch_negotiator {
>  	void *data;
>  };
>  
> +/*
> + * Initialize a negotiator based on the repository settings.
> + */
>  void fetch_negotiator_init(struct repository *r,
>  			   struct fetch_negotiator *negotiator);
>  
> +/*
> + * Initialize a noop negotiator.
> + */
> +void fetch_negotiator_init_noop(struct fetch_negotiator *negotiator);
> +
>  #endif