Skip to content
Snippets Groups Projects
Select Git revision
  • aa145bf6f1cb45ad66250c40da3cd708956cf71e
  • passt default
  • master
  • pu
  • todo
  • next
  • maint
  • v2.8.0-rc1
  • v2.8.0-rc0
  • v2.7.2
  • v2.7.1
  • v2.7.0
  • v2.6.5
  • v2.7.0-rc3
  • v2.7.0-rc2
  • v2.7.0-rc1
  • v2.7.0-rc0
  • v2.6.4
  • v2.6.3
  • v2.6.2
  • v2.6.1
  • v2.3.10
  • v2.5.4
  • v2.4.10
  • v2.6.0
  • v2.6.0-rc3
  • v2.5.3
27 results

archive.h

Blame
  • user avatar
    Jeff King authored and Junio C Hamano committed
    Some tar filters may be very expensive to run, so sites do
    not want to expose them via upload-archive. This patch lets
    users configure tar.<filter>.remote to turn them off.
    
    By default, gzip filters are left on, as they are about as
    expensive as creating zip archives.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    7b97730b
    History
    archive.h 1.12 KiB
    #ifndef ARCHIVE_H
    #define ARCHIVE_H
    
    struct archiver_args {
    	const char *base;
    	size_t baselen;
    	struct tree *tree;
    	const unsigned char *commit_sha1;
    	const struct commit *commit;
    	time_t time;
    	const char **pathspec;
    	unsigned int verbose : 1;
    	unsigned int worktree_attributes : 1;
    	int compression_level;
    };
    
    #define ARCHIVER_WANT_COMPRESSION_LEVELS 1
    #define ARCHIVER_REMOTE 2
    struct archiver {
    	const char *name;
    	int (*write_archive)(const struct archiver *, struct archiver_args *);
    	unsigned flags;
    	void *data;
    };
    extern void register_archiver(struct archiver *);
    
    extern void init_tar_archiver(void);
    extern void init_zip_archiver(void);
    
    typedef int (*write_archive_entry_fn_t)(struct archiver_args *args, const unsigned char *sha1, const char *path, size_t pathlen, unsigned int mode, void *buffer, unsigned long size);
    
    extern int write_archive_entries(struct archiver_args *args, write_archive_entry_fn_t write_entry);
    extern int write_archive(int argc, const char **argv, const char *prefix, int setup_prefix, const char *name_hint, int remote);
    
    const char *archive_format_from_filename(const char *filename);
    
    #endif	/* ARCHIVE_H */