mirror of
https://github.com/git/git.git
synced 2024-11-23 01:46:13 +08:00
transport: introduce parse_transport_option() method
Add the `parse_transport_option()` method to parse the `push.pushOption` configuration. This method will also be used in the next commit to handle the new `remote.<name>.serverOption` configuration for setting server options in Git protocol v2. Signed-off-by: Xing Xin <xingxin.xx@bytedance.com> Reviewed-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
777489f9e0
commit
06708ce180
@ -519,14 +519,7 @@ static int git_push_config(const char *k, const char *v,
|
||||
RECURSE_SUBMODULES_ON_DEMAND : RECURSE_SUBMODULES_OFF;
|
||||
recurse_submodules = val;
|
||||
} 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);
|
||||
return 0;
|
||||
return parse_transport_option(k, v, &push_options_config);
|
||||
} else if (!strcmp(k, "color.push")) {
|
||||
push_use_color = git_config_colorbool(k, v);
|
||||
return 0;
|
||||
|
12
transport.c
12
transport.c
@ -1108,6 +1108,18 @@ int is_transport_allowed(const char *type, int from_user)
|
||||
BUG("invalid protocol_allow_config type");
|
||||
}
|
||||
|
||||
int parse_transport_option(const char *var, const char *value,
|
||||
struct string_list *transport_options)
|
||||
{
|
||||
if (!value)
|
||||
return config_error_nonbool(var);
|
||||
if (!*value)
|
||||
string_list_clear(transport_options, 0);
|
||||
else
|
||||
string_list_append(transport_options, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void transport_check_allowed(const char *type)
|
||||
{
|
||||
if (!is_transport_allowed(type, -1))
|
||||
|
@ -342,4 +342,8 @@ 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 or server-option from config */
|
||||
int parse_transport_option(const char *var, const char *value,
|
||||
struct string_list *transport_options);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user