#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" #include "abspath.h" #include "config.h" #include "convert.h" #include "environment.h" #include "gettext.h" #include "hex.h" #include "object-name.h" #include "path.h" #include "pretty.h" #include "setup.h" #include "refs.h" #include "object-store-ll.h" #include "commit.h" #include "tree.h" #include "tree-walk.h" #include "attr.h" #include "archive.h" #include "parse-options.h" #include "unpack-trees.h" #include "quote.h" static char const * const archive_usage[] = …; static const struct archiver **archivers; static int nr_archivers; static int alloc_archivers; static int remote_allow_unreachable; void register_archiver(struct archiver *ar) { … } void init_archivers(void) { … } static void format_subst(const struct commit *commit, const char *src, size_t len, struct strbuf *buf, struct pretty_print_context *ctx) { … } static void *object_file_to_archive(const struct archiver_args *args, const char *path, const struct object_id *oid, unsigned int mode, enum object_type *type, unsigned long *sizep) { … } struct directory { … }; struct archiver_context { … }; static const struct attr_check *get_archive_attrs(struct index_state *istate, const char *path) { … } static int check_attr_export_ignore(const struct attr_check *check) { … } static int check_attr_export_subst(const struct attr_check *check) { … } static int write_archive_entry(const struct object_id *oid, const char *base, int baselen, const char *filename, unsigned mode, void *context) { … } static void queue_directory(const struct object_id *oid, struct strbuf *base, const char *filename, unsigned mode, struct archiver_context *c) { … } static int write_directory(struct archiver_context *c) { … } static int queue_or_write_archive_entry(const struct object_id *oid, struct strbuf *base, const char *filename, unsigned mode, void *context) { … } struct extra_file_info { … }; int write_archive_entries(struct archiver_args *args, write_archive_entry_fn_t write_entry) { … } static const struct archiver *lookup_archiver(const char *name) { … } struct path_exists_context { … }; static int reject_entry(const struct object_id *oid UNUSED, struct strbuf *base, const char *filename, unsigned mode, void *context) { … } static int reject_outside(const struct object_id *oid UNUSED, struct strbuf *base, const char *filename, unsigned mode, void *context) { … } static int path_exists(struct archiver_args *args, const char *path) { … } static void parse_pathspec_arg(const char **pathspec, struct archiver_args *ar_args) { … } static void parse_treeish_arg(const char **argv, struct archiver_args *ar_args, int remote) { … } static void extra_file_info_clear(void *util, const char *str UNUSED) { … } static int add_file_cb(const struct option *opt, const char *arg, int unset) { … } static int number_callback(const struct option *opt, const char *arg, int unset) { … } static int parse_archive_args(int argc, const char **argv, const struct archiver **ar, struct archiver_args *args, const char *name_hint, int is_remote) { … } int write_archive(int argc, const char **argv, const char *prefix, struct repository *repo, const char *name_hint, int remote) { … } static int match_extension(const char *filename, const char *ext) { … } const char *archive_format_from_filename(const char *filename) { … }