Re: [PATCH 1/2] t5704: Fix the test that checks for excluded tags
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:02:08
Lukas Fleischer [off-list ref] writes:
quoted hunk
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 <redacted> --- 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?
quoted hunk
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