Subject: Re: [PATCH 08/11] bundle: parse filter capability

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Mon, 07 Mar 2022 16:55:17 +0100

On Wed, Feb 23 2022, Derrick Stolee via GitGitGadget wrote:

> From: Derrick Stolee <[email-masked]>
> [...]
>  static int parse_capability(struct bundle_header *header, const char *capability)
> @@ -45,6 +47,11 @@ static int parse_capability(struct bundle_header *header, const char *capability
>  		header->hash_algo = &hash_algos[algo];
>  		return 0;
>  	}
> +	if (skip_prefix(capability, "filter=", &arg)) {
> +		CALLOC_ARRAY(header->filter, 1);
> +		parse_list_objects_filter(header->filter, arg);
> +		return 0;
> +	}
>  	return error(_("unknown capability '%s'"), capability);
>  }

[Something I should have noted in the other reply, but missed].

Before this series we just had the object-format capability, and now we
have a 2nd one.

As before we'll return errors un unknown capabilities.

I think it's worthwhile to stop here & think how we think about
cross-version compatibility between git versions. I.e. we're not
changing the *format version* here (nor is it needed), but just adding a
new capability that older gits won't know about.

I don't know if this is a case where older versions could limp along in
some cases and still unbundle these, probably that's never happening?

So probably nothing needs to change here, I was just wondering *if* we
had capabilities that were optional in some cases whether we shouldn't
while-we're-at-it give those some prefix indicating that, and have older
versions just issue a warning().

Then have them just try to call index-pack & see if that worked.

But yeah, all of that probably isn't applicable here at all :)