diff options
author | Junio C Hamano <gitster@pobox.com> | 2024-02-08 16:22:04 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-02-08 16:22:04 -0800 |
commit | 878f8c42dc22d0f5f6bb7f76935239ced0e1cea3 (patch) | |
tree | f54ce18f4c6bf34e42784d99432923766fe58a24 | |
parent | a593e2fbce8e66663b9e1f4f6377f2579879d1fd (diff) | |
parent | d6b6cd139359097f565023f9481c9943989e4463 (diff) | |
download | git-878f8c42dc22d0f5f6bb7f76935239ced0e1cea3.tar.gz |
Merge branch 'jc/archive-list-with-extra-args' into maint-2.43
"git archive --list extra garbage" silently ignored excess command
line parameters, which has been corrected.
* jc/archive-list-with-extra-args:
archive: "--list" does not take further options
-rw-r--r-- | archive.c | 2 | ||||
-rwxr-xr-x | t/t5000-tar-tree.sh | 10 |
2 files changed, 12 insertions, 0 deletions
@@ -685,6 +685,8 @@ static int parse_archive_args(int argc, const char **argv, base = ""; if (list) { + if (argc) + die(_("extra command line parameter '%s'"), *argv); for (i = 0; i < nr_archivers; i++) if (!is_remote || archivers[i]->flags & ARCHIVER_REMOTE) printf("%s\n", archivers[i]->name); diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh index 4b4c3315d8..72b8d0ff02 100755 --- a/t/t5000-tar-tree.sh +++ b/t/t5000-tar-tree.sh @@ -124,6 +124,16 @@ test_expect_success 'setup' ' EOF ' +test_expect_success '--list notices extra parameters' ' + test_must_fail git archive --list blah && + test_must_fail git archive --remote=. --list blah +' + +test_expect_success 'end-of-options is correctly eaten' ' + git archive --list --end-of-options && + git archive --remote=. --list --end-of-options +' + test_expect_success 'populate workdir' ' mkdir a && echo simple textfile >a/a && |