"Elijah Newren via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > From: Elijah Newren <newren@xxxxxxxxx> > > In commit af3a67de01 ("negotiator: unknown fetch.negotiationAlgorithm > should error out", 2018-08-01), error handling for an unknown > fetch.negotiationAlgorithm was added with the code die()ing. This was > also added to the documentation for the fetch.negotiationAlgorithm > option, to make it explicit that the code would die on unknown values. > > This behavior was lost with commit aaf633c2ad ("repo-settings: create > feature.experimental setting", 2019-08-13). Restore it so that the > behavior again matches the documentation. > > Signed-off-by: Elijah Newren <newren@xxxxxxxxx> > --- > repo-settings.c | 2 ++ > t/t5500-fetch-pack.sh | 7 +++++++ > 2 files changed, 9 insertions(+) > > diff --git a/repo-settings.c b/repo-settings.c > index 38c10f9977b..41e1c30845f 100644 > --- a/repo-settings.c > +++ b/repo-settings.c > @@ -87,6 +87,8 @@ void prepare_repo_settings(struct repository *r) > r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_NOOP; > else if (!strcasecmp(strval, "default")) > r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_DEFAULT; > + else > + die("unknown fetch negotiation algorithm '%s'", strval); > } Makes sense. > diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh > index 666502ed832..41ea9f25de6 100755 > --- a/t/t5500-fetch-pack.sh > +++ b/t/t5500-fetch-pack.sh > @@ -971,6 +971,13 @@ test_expect_success 'same as last but with config overrides' ' > -c fetch.negotiationAlgorithm=default > ' > > +test_expect_success 'ensure bogus fetch.negotiationAlgorithm yields error' ' > + test_when_finished rm -rf clientv0 && > + cp -r client clientv0 && > + test_must_fail git -C clientv0 --fetch.negotiationAlgorithm=bogus \ > + fetch origin server_has both_have_2 > +' > + > test_expect_success 'filtering by size' ' > rm -rf server client && > test_create_repo server &&