#ifndef TRANSPORT_H
#define TRANSPORT_H
#include "run-command.h"
#include "remote.h"
#include "list-objects-filter-options.h"
#include "string-list.h"
struct git_transport_options { … };
enum transport_family { … };
struct bundle_list;
struct transport { … };
#define TRANSPORT_PUSH_ALL …
#define TRANSPORT_PUSH_FORCE …
#define TRANSPORT_PUSH_DRY_RUN …
#define TRANSPORT_PUSH_MIRROR …
#define TRANSPORT_PUSH_PORCELAIN …
#define TRANSPORT_PUSH_SET_UPSTREAM …
#define TRANSPORT_RECURSE_SUBMODULES_CHECK …
#define TRANSPORT_PUSH_PRUNE …
#define TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND …
#define TRANSPORT_PUSH_NO_HOOK …
#define TRANSPORT_PUSH_FOLLOW_TAGS …
#define TRANSPORT_PUSH_CERT_ALWAYS …
#define TRANSPORT_PUSH_CERT_IF_ASKED …
#define TRANSPORT_PUSH_ATOMIC …
#define TRANSPORT_PUSH_OPTIONS …
#define TRANSPORT_RECURSE_SUBMODULES_ONLY …
#define TRANSPORT_PUSH_FORCE_IF_INCLUDES …
#define TRANSPORT_PUSH_AUTO_UPSTREAM …
int transport_summary_width(const struct ref *refs);
struct transport *transport_get(struct remote *, const char *);
int is_transport_allowed(const char *type, int from_user);
void transport_check_allowed(const char *type);
#define TRANS_OPT_UPLOADPACK …
#define TRANS_OPT_RECEIVEPACK …
#define TRANS_OPT_THIN …
#define TRANS_OPT_CAS …
#define TRANS_OPT_KEEP …
#define TRANS_OPT_DEPTH …
#define TRANS_OPT_DEEPEN_SINCE …
#define TRANS_OPT_DEEPEN_NOT …
#define TRANS_OPT_DEEPEN_RELATIVE …
#define TRANS_OPT_FOLLOWTAGS …
#define TRANS_OPT_REJECT_SHALLOW …
#define TRANS_OPT_UPDATE_SHALLOW …
#define TRANS_OPT_PUSH_CERT …
#define TRANS_OPT_FROM_PROMISOR …
#define TRANS_OPT_LIST_OBJECTS_FILTER …
#define TRANS_OPT_REFETCH …
#define TRANS_OPT_ATOMIC …
#define TRANS_OPT_FORCE_IF_INCLUDES …
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);
#define REJECT_NON_FF_HEAD …
#define REJECT_NON_FF_OTHER …
#define REJECT_ALREADY_EXISTS …
#define REJECT_FETCH_FIRST …
#define REJECT_NEEDS_FORCE …
#define REJECT_REF_NEEDS_UPDATE …
int transport_push(struct repository *repo,
struct transport *connection,
struct refspec *rs, int flags,
unsigned int * reject_reasons);
struct transport_ls_refs_options { … };
#define TRANSPORT_LS_REFS_OPTIONS_INIT …
void transport_ls_refs_options_release(struct transport_ls_refs_options *opts);
const struct ref *transport_get_remote_refs(struct transport *transport,
struct transport_ls_refs_options *transport_options);
int transport_get_remote_bundle_uri(struct transport *transport);
const struct git_hash_algo *transport_get_hash_algo(struct transport *transport);
int transport_fetch_refs(struct transport *transport, struct ref *refs);
#define TRANSPORT_UNLOCK_PACK_IN_SIGNAL_HANDLER …
void transport_unlock_pack(struct transport *transport, unsigned int flags);
int transport_disconnect(struct transport *transport);
char *transport_anonymize_url(const char *url);
void transport_take_over(struct transport *transport,
struct child_process *child);
int transport_connect(struct transport *transport, const char *name,
const char *exec, int fd[2]);
int transport_helper_init(struct transport *transport, const char *name);
int bidirectional_transfer_loop(int input, int output);
void transport_update_tracking_ref(struct remote *remote, struct ref *ref, int verbose);
int transport_refs_pushed(struct ref *ref);
void transport_print_push_status(const char *dest, struct ref *refs,
int verbose, int porcelain, unsigned int *reject_reasons);
void reject_atomic_push(struct ref *refs, int mirror_mode);
int parse_transport_option(const char *var, const char *value,
struct string_list *transport_options);
#endif