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:
@ -519,14 +519,7 @@ static int git_push_config(const char *k, const char *v,
|
|||||||
RECURSE_SUBMODULES_ON_DEMAND : RECURSE_SUBMODULES_OFF;
|
RECURSE_SUBMODULES_ON_DEMAND : RECURSE_SUBMODULES_OFF;
|
||||||
recurse_submodules = val;
|
recurse_submodules = val;
|
||||||
} else if (!strcmp(k, "push.pushoption")) {
|
} else if (!strcmp(k, "push.pushoption")) {
|
||||||
if (!v)
|
return parse_transport_option(k, v, &push_options_config);
|
||||||
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;
|
|
||||||
} else if (!strcmp(k, "color.push")) {
|
} else if (!strcmp(k, "color.push")) {
|
||||||
push_use_color = git_config_colorbool(k, v);
|
push_use_color = git_config_colorbool(k, v);
|
||||||
return 0;
|
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");
|
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)
|
void transport_check_allowed(const char *type)
|
||||||
{
|
{
|
||||||
if (!is_transport_allowed(type, -1))
|
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 */
|
/* common method used by transport-helper.c and send-pack.c */
|
||||||
void reject_atomic_push(struct ref *refs, int mirror_mode);
|
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
|
#endif
|
||||||
|
Reference in New Issue
Block a user