#define USE_THE_REPOSITORY_VARIABLE
#include "git-compat-util.h"
#include "advice.h"
#include "config.h"
#include "environment.h"
#include "hex.h"
#include "transport.h"
#include "hook.h"
#include "pkt-line.h"
#include "fetch-pack.h"
#include "remote.h"
#include "connect.h"
#include "send-pack.h"
#include "bundle.h"
#include "gettext.h"
#include "refs.h"
#include "refspec.h"
#include "branch.h"
#include "url.h"
#include "submodule.h"
#include "string-list.h"
#include "oid-array.h"
#include "sigchain.h"
#include "trace2.h"
#include "transport-internal.h"
#include "protocol.h"
#include "object-name.h"
#include "color.h"
#include "bundle-uri.h"
static int transport_use_color = …;
static char transport_colors[][COLOR_MAXLEN] = …;
enum color_transport { … };
static int transport_color_config(void)
{ … }
static const char *transport_get_color(enum color_transport ix)
{ … }
static void set_upstreams(struct transport *transport, struct ref *refs,
int pretend)
{ … }
struct bundle_transport_data { … };
static void get_refs_from_bundle_inner(struct transport *transport)
{ … }
static struct ref *get_refs_from_bundle(struct transport *transport,
int for_push,
struct transport_ls_refs_options *transport_options UNUSED)
{ … }
static int fetch_refs_from_bundle(struct transport *transport,
int nr_heads UNUSED,
struct ref **to_fetch UNUSED)
{ … }
static int close_bundle(struct transport *transport)
{ … }
struct git_transport_data { … };
static int set_git_option(struct git_transport_options *opts,
const char *name, const char *value)
{ … }
static int connect_setup(struct transport *transport, int for_push)
{ … }
static void die_if_server_options(struct transport *transport)
{ … }
static struct ref *handshake(struct transport *transport, int for_push,
struct transport_ls_refs_options *options,
int must_list_refs)
{ … }
static struct ref *get_refs_via_connect(struct transport *transport, int for_push,
struct transport_ls_refs_options *options)
{ … }
static int get_bundle_uri(struct transport *transport)
{ … }
static int fetch_refs_via_pack(struct transport *transport,
int nr_heads, struct ref **to_fetch)
{ … }
static int push_had_errors(struct ref *ref)
{ … }
int transport_refs_pushed(struct ref *ref)
{ … }
static void update_one_tracking_ref(struct remote *remote, char *refname,
struct object_id *new_oid, int deletion,
int verbose)
{ … }
void transport_update_tracking_ref(struct remote *remote, struct ref *ref, int verbose)
{ … }
static void print_ref_status(char flag, const char *summary,
struct ref *to, struct ref *from, const char *msg,
struct ref_push_report *report,
int porcelain, int summary_width)
{ … }
static void print_ok_ref_status(struct ref *ref,
struct ref_push_report *report,
int porcelain, int summary_width)
{ … }
static int print_one_push_report(struct ref *ref, const char *dest, int count,
struct ref_push_report *report,
int porcelain, int summary_width)
{ … }
static int print_one_push_status(struct ref *ref, const char *dest, int count,
int porcelain, int summary_width)
{ … }
static int measure_abbrev(const struct object_id *oid, int sofar)
{ … }
int transport_summary_width(const struct ref *refs)
{ … }
void transport_print_push_status(const char *dest, struct ref *refs,
int verbose, int porcelain, unsigned int *reject_reasons)
{ … }
static int git_transport_push(struct transport *transport, struct ref *remote_refs, int flags)
{ … }
static int connect_git(struct transport *transport, const char *name,
const char *executable, int fd[2])
{ … }
static int disconnect_git(struct transport *transport)
{ … }
static struct transport_vtable taken_over_vtable = …;
void transport_take_over(struct transport *transport,
struct child_process *child)
{ … }
static int is_file(const char *url)
{ … }
static int external_specification_len(const char *url)
{ … }
static const struct string_list *protocol_allow_list(void)
{ … }
enum protocol_allow_config { … };
static enum protocol_allow_config parse_protocol_config(const char *key,
const char *value)
{ … }
static enum protocol_allow_config get_protocol_config(const char *type)
{ … }
int is_transport_allowed(const char *type, int from_user)
{ … }
int parse_transport_option(const char *var, const char *value,
struct string_list *transport_options)
{ … }
void transport_check_allowed(const char *type)
{ … }
static struct transport_vtable bundle_vtable = …;
static struct transport_vtable builtin_smart_vtable = …;
struct transport *transport_get(struct remote *remote, const char *url)
{ … }
const struct git_hash_algo *transport_get_hash_algo(struct transport *transport)
{ … }
int transport_set_option(struct transport *transport,
const char *name, const char *value)
{ … }
void transport_set_verbosity(struct transport *transport, int verbosity,
int force_progress)
{ … }
static void die_with_unpushed_submodules(struct string_list *needs_pushing)
{ … }
static int run_pre_push_hook(struct transport *transport,
struct ref *remote_refs)
{ … }
int transport_push(struct repository *r,
struct transport *transport,
struct refspec *rs, int flags,
unsigned int *reject_reasons)
{ … }
const struct ref *transport_get_remote_refs(struct transport *transport,
struct transport_ls_refs_options *transport_options)
{ … }
void transport_ls_refs_options_release(struct transport_ls_refs_options *opts)
{ … }
int transport_fetch_refs(struct transport *transport, struct ref *refs)
{ … }
int transport_get_remote_bundle_uri(struct transport *transport)
{ … }
void transport_unlock_pack(struct transport *transport, unsigned int flags)
{ … }
int transport_connect(struct transport *transport, const char *name,
const char *exec, int fd[2])
{ … }
int transport_disconnect(struct transport *transport)
{ … }
char *transport_anonymize_url(const char *url)
{ … }