1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-04 17:06:12 +02:00

repo-settings: fix error handling for unknown values

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@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Elijah Newren 2022-02-02 03:42:39 +00:00 committed by Junio C Hamano
parent a68c5b9eba
commit a9a136c232
2 changed files with 9 additions and 0 deletions

View File

@ -84,6 +84,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);
}
/*

View File

@ -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 &&