#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
#include "advice.h"
#include "branch.h"
#include "config.h"
#include "environment.h"
#include "gettext.h"
#include "refspec.h"
#include "run-command.h"
#include "remote.h"
#include "transport.h"
#include "parse-options.h"
#include "pkt-line.h"
#include "submodule.h"
#include "submodule-config.h"
#include "send-pack.h"
#include "trace2.h"
#include "color.h"
static const char * const push_usage[] = …;
static int push_use_color = …;
static char push_colors[][COLOR_MAXLEN] = …;
enum color_push { … };
static int parse_push_color_slot(const char *slot)
{ … }
static const char *push_get_color(enum color_push ix)
{ … }
static int thin = …;
static int deleterefs;
static const char *receivepack;
static int verbosity;
static int progress = …;
static int recurse_submodules = …;
static enum transport_family family;
static struct push_cas_option cas;
static struct refspec rs = …;
static struct string_list push_options_config = …;
static void refspec_append_mapped(struct refspec *refspec, const char *ref,
struct remote *remote, struct ref *matched)
{ … }
static void set_refspecs(const char **refs, int nr, struct remote *remote)
{ … }
static NORETURN void die_push_simple(struct branch *branch,
struct remote *remote)
{ … }
static const char message_detached_head_die[] = …);
static const char *get_upstream_ref(int flags, struct branch *branch, const char *remote_name)
{ … }
static void setup_default_push_refspecs(int *flags, struct remote *remote)
{ … }
static const char message_advice_pull_before_push[] = …);
static const char message_advice_checkout_pull_push[] = …);
static const char message_advice_ref_fetch_first[] = …);
static const char message_advice_ref_already_exists[] = …);
static const char message_advice_ref_needs_force[] = …);
static const char message_advice_ref_needs_update[] = …);
static void advise_pull_before_push(void)
{ … }
static void advise_checkout_pull_push(void)
{ … }
static void advise_ref_already_exists(void)
{ … }
static void advise_ref_fetch_first(void)
{ … }
static void advise_ref_needs_force(void)
{ … }
static void advise_ref_needs_update(void)
{ … }
static int push_with_options(struct transport *transport, struct refspec *rs,
int flags)
{ … }
static int do_push(int flags,
const struct string_list *push_options,
struct remote *remote)
{ … }
static int option_parse_recurse_submodules(const struct option *opt,
const char *arg, int unset)
{ … }
static void set_push_cert_flags(int *flags, int v)
{ … }
static int git_push_config(const char *k, const char *v,
const struct config_context *ctx, void *cb)
{ … }
int cmd_push(int argc,
const char **argv,
const char *prefix,
struct repository *repository UNUSED)
{ … }