promisor-remote: refactor accept_from_server()
In future commits, we are going to add more logic to filter_promisor_remote() which is already doing a lot of things. Let's alleviate that by moving the logic that checks and validates the value of the `promisor.acceptFromServer` config variable into its own accept_from_server() helper function. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder committed
Apr 7, 2026 at 13:52 UTC
7557a562434804d27f1417fe94c4081e2ee7e68b
1 file changed
+17
-10
promisor-remote.c
+17
-10
@@ -862,20 +862,12 @@ static bool promisor_store_advertised_fields(struct promisor_info *advertised,
862
return reload_config;
863
}
864
865
-static void filter_promisor_remote(struct repository *repo,
866
- struct strvec *accepted,
867
- const char *info)
865
+static enum accept_promisor accept_from_server(struct repository *repo)
866
{
867
const char *accept_str;
868
enum accept_promisor accept = ACCEPT_NONE;
871
- struct string_list config_info = STRING_LIST_INIT_NODUP;
872
- struct string_list remote_info = STRING_LIST_INIT_DUP;
873
- struct store_info *store_info = NULL;
874
- struct string_list_item *item;
875
- bool reload_config = false;
876
- struct string_list accepted_filters = STRING_LIST_INIT_DUP;
869
878
- if (!repo_config_get_string_tmp(the_repository, "promisor.acceptfromserver", &accept_str)) {
870
+ if (!repo_config_get_string_tmp(repo, "promisor.acceptfromserver", &accept_str)) {
871
if (!*accept_str || !strcasecmp("None", accept_str))
872
accept = ACCEPT_NONE;
873
else if (!strcasecmp("KnownUrl", accept_str))
@@ -889,6 +881,21 @@ static void filter_promisor_remote(struct repository *repo,
881
accept_str, "promisor.acceptfromserver");
882
}
883
884
+ return accept;
885
+}
886
+
887
+static void filter_promisor_remote(struct repository *repo,
888
+ struct strvec *accepted,
889
+ const char *info)
890
+{
891
+ struct string_list config_info = STRING_LIST_INIT_NODUP;
892
+ struct string_list remote_info = STRING_LIST_INIT_DUP;
893
+ struct store_info *store_info = NULL;
894
+ struct string_list_item *item;
895
+ bool reload_config = false;
896
+ struct string_list accepted_filters = STRING_LIST_INIT_DUP;
897
+ enum accept_promisor accept = accept_from_server(repo);
898
+
899
if (accept == ACCEPT_NONE)
900
return;
901