static int git_push_config(const char *k, const char *v, void *cb)
{
+ int *flags = cb;
int status;
status = git_gpg_config(k, v, NULL);
if (status)
return status;
+
+ if (!strcmp(k, "push.followtags")) {
+ if (git_config_bool(k, v))
+ *flags |= TRANSPORT_PUSH_FOLLOW_TAGS;
+ else
+ *flags &= ~TRANSPORT_PUSH_FOLLOW_TAGS;
+ return 0;
+ }
+
return git_default_config(k, v, NULL);
}
};
packet_trace_identity("push");
- git_config(git_push_config, NULL);
+ git_config(git_push_config, &flags);
argc = parse_options(argc, argv, prefix, options, push_usage, 0);
if (deleterefs && (tags || (flags & (TRANSPORT_PUSH_ALL | TRANSPORT_PUSH_MIRROR))))