archive-tar: report filter start error only once
A missing tar filter is reported by start_command() using error(), but also by its caller, write_tar_filter_archive(), using die(): $ git -c tar.invalid.command=foo archive --format=invalid HEAD error: cannot run foo: No such file or directory fatal: unable to start 'foo' filter: No such file or directory The second message contains all relevant information and even says that the failed command was intended to be used as a filter. Silence the first one because it's redundant. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
This commit is contained in:
parent
63bba4fdd8
commit
1e4ea950f7
@ -498,6 +498,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);
|
||||
|
@ -342,6 +342,13 @@ test_expect_success 'only enabled filters are available remotely' '
|
||||
test_cmp_bin remote.bar config.bar
|
||||
'
|
||||
|
||||
test_expect_success 'invalid filter is reported only once' '
|
||||
test_must_fail git -c tar.invalid.command= archive --format=invalid \
|
||||
HEAD >out 2>err &&
|
||||
test_must_be_empty out &&
|
||||
test_line_count = 1 err
|
||||
'
|
||||
|
||||
test_expect_success 'git archive --format=tgz' '
|
||||
git archive --format=tgz HEAD >j.tgz
|
||||
'
|
||||
|
Loading…
Reference in New Issue
Block a user