diff options
Diffstat (limited to 'archive-tar.c')
-rw-r--r-- | archive-tar.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/archive-tar.c b/archive-tar.c index 3e4822b684..f2a0ed7752 100644 --- a/archive-tar.c +++ b/archive-tar.c @@ -1,13 +1,18 @@ /* * Copyright (c) 2005, 2006 Rene Scharfe */ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" +#include "gettext.h" +#include "git-zlib.h" +#include "hex.h" #include "tar.h" #include "archive.h" -#include "object-store.h" +#include "object-store-ll.h" +#include "strbuf.h" #include "streaming.h" #include "run-command.h" +#include "write-or-die.h" #define RECORDSIZE (512) #define BLOCKSIZE (RECORDSIZE * 20) @@ -406,14 +411,15 @@ static int tar_filter_config(const char *var, const char *value, return 0; } -static int git_tar_config(const char *var, const char *value, void *cb) +static int git_tar_config(const char *var, const char *value, + const struct config_context *ctx, void *cb) { if (!strcmp(var, "tar.umask")) { if (value && !strcmp(value, "user")) { tar_umask = umask(0); umask(tar_umask); } else { - tar_umask = git_config_int(var, value); + tar_umask = git_config_int(var, value, ctx->kvi); } return 0; } @@ -498,6 +504,7 @@ static int write_tar_filter_archive(const struct archiver *ar, strvec_push(&filter.args, cmd.buf); filter.use_shell = 1; filter.in = -1; + filter.silent_exec_failure = 1; if (start_command(&filter) < 0) die_errno(_("unable to start '%s' filter"), cmd.buf); |