]> git.ipfire.org Git - thirdparty/git.git/commitdiff
name-rev: make dedicated --annotate-stdin --name-only test
authorKristoffer Haugsbakk <code@khaugsbakk.name>
Mon, 11 May 2026 15:45:48 +0000 (17:45 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 12 May 2026 00:09:51 +0000 (09:09 +0900)
The previous commit split the `--name-only` handling:

1. `--annotate-stdin`: uses the new `struct command`
2. The rest: uses `struct name_ref_data`

But there is no dedicated test for the option combination in (1). That
means that the following tests will fail if you neglect to set
`command.u.name_only` properly:

    name-rev --annotate-stdin works with commitGraph
    name-rev --annotate-stdin works with non-monotonic timestamps

even though it has nothing to do with what these tests are supposed
to test.

Let’s add another regression test now that it is relevant.

Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t6120-describe.sh

index 2c70cc561ad5f64ae9b900aacc68d231491839ae..62789f763819e656abe5c54c22d83eb4b4ce3a25 100755 (executable)
@@ -298,6 +298,20 @@ test_expect_success 'name-rev --annotate-stdin' '
        test_cmp expect actual
 '
 
+test_expect_success 'name-rev --annotate-stdin --name-only' '
+       >expect.unsorted &&
+       for rev in $(git rev-list --all)
+       do
+               name=$(git name-rev --name-only $rev) &&
+               echo "$name" >>expect.unsorted || return 1
+       done &&
+       sort <expect.unsorted >expect &&
+       git name-rev --annotate-stdin --name-only \
+               <list >actual.unsorted &&
+       sort <actual.unsorted >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'name-rev --stdin deprecated' '
        git rev-list --all >list &&
        if ! test_have_prereq WITH_BREAKING_CHANGES