git/archive.h
Elijah Newren c2c4138c07 archive.h: remove unnecessary include
The unnecessary include in the header transitively pulled in some
other headers actually needed by source files, though.  Have those
source files explicitly include the headers they need.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-12-26 12:04:31 -08:00

64 lines
1.5 KiB
C

#ifndef ARCHIVE_H
#define ARCHIVE_H
#include "pathspec.h"
#include "string-list.h"
struct repository;
struct pretty_print_context;
struct archiver_args {
struct repository *repo;
char *refname;
const char *prefix;
const char *base;
size_t baselen;
struct tree *tree;
const struct object_id *commit_oid;
const struct commit *commit;
const char *mtime_option;
timestamp_t time;
struct pathspec pathspec;
unsigned int verbose : 1;
unsigned int worktree_attributes : 1;
unsigned int convert : 1;
int compression_level;
struct string_list extra_files;
struct pretty_print_context *pretty_ctx;
};
/* main api */
int write_archive(int argc, const char **argv, const char *prefix,
struct repository *repo,
const char *name_hint, int remote);
const char *archive_format_from_filename(const char *filename);
/* archive backend stuff */
#define ARCHIVER_WANT_COMPRESSION_LEVELS 1
#define ARCHIVER_REMOTE 2
#define ARCHIVER_HIGH_COMPRESSION_LEVELS 4
struct archiver {
const char *name;
int (*write_archive)(const struct archiver *, struct archiver_args *);
unsigned flags;
char *filter_command;
};
void register_archiver(struct archiver *);
void init_tar_archiver(void);
void init_zip_archiver(void);
void init_archivers(void);
typedef int (*write_archive_entry_fn_t)(struct archiver_args *args,
const struct object_id *oid,
const char *path, size_t pathlen,
unsigned int mode,
void *buffer, unsigned long size);
int write_archive_entries(struct archiver_args *args, write_archive_entry_fn_t write_entry);
#endif /* ARCHIVE_H */