git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/2] t5704: Fix the test that checks for excluded tags

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 4, 2014, 20:08 UTC
Message-ID
<xmqqzjfkqap5.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1406968747-16100-1-git-send-email-git@cryptocrack.de>
Lukas Fleischer <git@cryptocrack.de> writes:
Show 27 quoted lines
> In c9a42c4 (bundle: allow rev-list options to exclude annotated tags,
> 2009-01-02), we added a test to check whether annotated tags, which fall
> outside the specified date range, are excluded from bundles. However,
> when initializing the repository, a command to create a lightweight tag
> was used. Fix this by replacing `git tag` by `git tag -a`. Furthermore,
> explicitly mention in the test message that an annotated tag is created
> and also test whether tags within the specified date range are included
> properly.
>
> Note that this fix reveals that the annotated tag exclusion actually
> does not work. Therefore, the test is marked expect-failure for now.
>
> Signed-off-by: Lukas Fleischer <git@cryptocrack.de>
> ---
>  t/t5704-bundle.sh | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/t/t5704-bundle.sh b/t/t5704-bundle.sh
> index a45c316..2f063ea 100755
> --- a/t/t5704-bundle.sh
> +++ b/t/t5704-bundle.sh
> @@ -6,7 +6,7 @@ test_description='some bundle related tests'
>  test_expect_success 'setup' '
>  	test_commit initial &&
>  	test_tick &&
> -	git tag -m tag tag &&
> +	git tag -am tag tag &&

I'd prefer to see this spelled as "-a -m tag", but anyway, this suggests to me that a request to create a light-weight tag should be made to error out when -m is given, or automatically promote itself to create an annotated tag, perhaps? That is in line with what happens when you do "git tag -F <file> tagname".

Oh, wait.
	$ git tag -d foo
        $ git rev-parse refs/tags/foo --
        fatal: bad revision 'refs/tags/foo'
        $ git tag -m msg foo
        $ git cat-file -t refs/tags/foo
        tag
        $ git cat-file tag refs/tags/foo
        object d84843c...
        type commit
        tag foo
        tagger Junio ....
	msg
	$ git version
        git version 2.1.0-rc0-247-g66c8a75

The output from "git blame -L'/^int cmd_tag/,/^}/' builtin/tag.c" seems to indicate that we automatically turned annotate on when a message is given via -m or -F since the very first version of "git tag" that was re-implemented in C, i.e. 62e09ce9 (Make git tag a builtin., 2007-07-20).

Your analysis starts to sound fishy. What version of Git are you talking about?

Show 15 quoted lines
>  	test_commit second &&
>  	test_commit third &&
>  	git tag -d initial &&
> @@ -14,7 +14,10 @@ test_expect_success 'setup' '
>  	git tag -d third
>  '
>  
> -test_expect_success 'tags can be excluded by rev-list options' '
> +test_expect_failure 'annotated tags can be excluded by rev-list options' '
> +	git bundle create bundle --all --since=7.Apr.2005.15:14:00.-0700 &&
> +	git ls-remote bundle > output &&
> +	grep tag output &&
>  	git bundle create bundle --all --since=7.Apr.2005.15:16:00.-0700 &&
>  	git ls-remote bundle > output &&
>  	! grep tag output
Previous: Junio C HamanoNext: Junio C Hamano
Message 4 of 7 in “t5704: Fix the test that checks for excluded tags”
  1. 1/2 t5704: Fix the test that checks for excluded tagsLukas Fleischer, Aug 2, 2014
  2. 2/2 bundle: Fix exclusion of annotated tagsLukas Fleischer, Aug 2, 2014
  3. Junio C HamanoAug 4, 2014
  4. Junio C HamanoAug 4, 2014
  5. Junio C HamanoAug 4, 2014
  6. 1/2 t5704: Complement annotated tag exclusion testLukas Fleischer, Aug 4, 2014
  7. 2/2 bundle: Fix exclusion of annotated tagsLukas Fleischer, Aug 4, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.