[PATCH 1/4] transport: add parse_transport_option() method
- From
- Xing Xin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Sep 2, 2024, 12:13 UTC
- Message-ID
- <5c8f3c166a59c9d1e6dfa3116a5403ac752efdba.1725279236.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1776.git.git.1725279236.gitgitgadget@gmail.com>
From: Xing Xin <xingxin.xx@bytedance.com>
Introduce the `parse_transport_option()` method used to parse `push.pushOption` configuration values. This method will be further utilized in subsequent commits to parse a newly added `fetch.serverOption` configuration for fetches, which aligns with the design pattern of `push.pushOption`.
Signed-off-by: Xing Xin <xingxin.xx@bytedance.com> --- builtin/push.c | 6 +----- transport.c | 8 ++++++++ transport.h | 3 +++ 3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/builtin/push.c b/builtin/push.c index 7a67398124f..63d19acfb27 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -519,11 +519,7 @@ static int git_push_config(const char *k, const char *v, } else if (!strcmp(k, "push.pushoption")) { if (!v) return config_error_nonbool(k); - else - if (!*v) - string_list_clear(&push_options_config, 0); - else - string_list_append(&push_options_config, v); + parse_transport_option(v, &push_options_config); return 0; } else if (!strcmp(k, "color.push")) { push_use_color = git_config_colorbool(k, v); diff --git a/transport.c b/transport.c index bab28965f96..ca6cd5b3436 100644 --- a/transport.c +++ b/transport.c @@ -1091,6 +1091,14 @@ int is_transport_allowed(const char *type, int from_user) BUG("invalid protocol_allow_config type"); } +void parse_transport_option(const char *option, struct string_list *transport_options) +{ + if (!*option) + string_list_clear(transport_options, 0); + else + string_list_append(transport_options, option); +} + void transport_check_allowed(const char *type) { if (!is_transport_allowed(type, -1)) diff --git a/transport.h b/transport.h index 6393cd9823c..1b8735e2ca4 100644 --- a/transport.h +++ b/transport.h @@ -342,4 +342,7 @@ void transport_print_push_status(const char *dest, struct ref *refs, /* common method used by transport-helper.c and send-pack.c */ void reject_atomic_push(struct ref *refs, int mirror_mode); +/* common method to parse push-option for pushes or server-option for fetches */ +void parse_transport_option(const char *option, struct string_list *transport_options); + #endif
-- gitgitgadget