X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=archive-tar.c;h=99db58f1cf21ee30f150c54acd6ffefbb14b6f57;hb=9d54ea6760cc4d7ee526d12cd00218bf19b79bf5;hp=4add80284e4570d1da44861e9025fa75eeb775d6;hpb=ac7fa2776c4a839a5a96c13886714774b52844de;p=git.git diff --git a/archive-tar.c b/archive-tar.c index 4add80284..99db58f1c 100644 --- a/archive-tar.c +++ b/archive-tar.c @@ -220,7 +220,7 @@ static void write_global_extended_header(const unsigned char *sha1) strbuf_release(&ext_header); } -static int git_tar_config(const char *var, const char *value) +static int git_tar_config(const char *var, const char *value, void *cb) { if (!strcmp(var, "tar.umask")) { if (value && !strcmp(value, "user")) { @@ -231,7 +231,7 @@ static int git_tar_config(const char *var, const char *value) } return 0; } - return git_default_config(var, value); + return git_default_config(var, value, cb); } static int write_tar_entry(const unsigned char *sha1, @@ -247,6 +247,8 @@ static int write_tar_entry(const unsigned char *sha1, strbuf_grow(&path, PATH_MAX); strbuf_add(&path, base, baselen); strbuf_addstr(&path, filename); + if (is_archive_path_ignored(path.buf + base_len)) + return 0; if (S_ISDIR(mode) || S_ISGITLINK(mode)) { strbuf_addch(&path, '/'); buffer = NULL; @@ -268,7 +270,7 @@ int write_tar_archive(struct archiver_args *args) { int plen = args->base ? strlen(args->base) : 0; - git_config(git_tar_config); + git_config(git_tar_config, NULL); archive_time = args->time; verbose = args->verbose;