threads / patch / 58715

patcharchive-tar: report filter start error only once

Subject: [PATCH] archive-tar: report filter start error only once

## tl;dr

2 messages between Oct 29, 2022 and Oct 29, 2022. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

René Scharfe· Oct 29, 2022, 10:06 UTC · lore

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>
---
 archive-tar.c       | 1 +
 t/t5000-tar-tree.sh | 7 +++++++
 2 files changed, 8 insertions(+)
Show changes to 2 files +8 −1

archive-tar.c, t/t5000-tar-tree.sh

diff --git a/archive-tar.c b/archive-tar.c
index 3e4822b684..f8fad2946e 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -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);
diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh
index eaa0b22ece..d473048138 100755
--- a/t/t5000-tar-tree.sh
+++ b/t/t5000-tar-tree.sh
@@ -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
 '
--
2.30.2
Taylor Blau· Oct 29, 2022, 18:02 UTC · re: René Scharfe · lore

Re: [PATCH] archive-tar: report filter start error only once

On Sat, Oct 29, 2022 at 12:06:06PM +0200, René Scharfe wrote:
> ---
>  archive-tar.c       | 1 +
>  t/t5000-tar-tree.sh | 7 +++++++
>  2 files changed, 8 insertions(+)
Looks very reasonable. Will queue, thanks.

Thanks, Taylor

← back to recent threads