All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] t5704: Fix the test that checks for excluded tags
@ 2014-08-02  8:39 Lukas Fleischer
  2014-08-02  8:39 ` [PATCH 2/2] bundle: Fix exclusion of annotated tags Lukas Fleischer
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Lukas Fleischer @ 2014-08-02  8:39 UTC (permalink / raw)
  To: git; +Cc: Johannes Schindelin

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 &&
 	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
-- 
2.0.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] bundle: Fix exclusion of annotated tags
  2014-08-02  8:39 [PATCH 1/2] t5704: Fix the test that checks for excluded tags Lukas Fleischer
@ 2014-08-02  8:39 ` Lukas Fleischer
  2014-08-04 20:10   ` Junio C Hamano
  2014-08-04 20:08 ` [PATCH 1/2] t5704: Fix the test that checks for excluded tags Junio C Hamano
  2014-08-04 20:57 ` [PATCH 1/2] t5704: Complement annotated tag exclusion test Lukas Fleischer
  2 siblings, 1 reply; 7+ messages in thread
From: Lukas Fleischer @ 2014-08-02  8:39 UTC (permalink / raw)
  To: git; +Cc: Johannes Schindelin

In commit c9a42c4 (bundle: allow rev-list options to exclude annotated
tags, 2009-01-02), support for excluding annotated tags outside the
specified date range was added. However, the wrong order of parameters
was chosen when calling memchr(). Fix this by swapping the character to
search for with the maximum length parameter.

Signed-off-by: Lukas Fleischer <git@cryptocrack.de>
---
 bundle.c          | 4 ++--
 t/t5704-bundle.sh | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/bundle.c b/bundle.c
index 71a21a6..b708906 100644
--- a/bundle.c
+++ b/bundle.c
@@ -221,8 +221,8 @@ static int is_tag_in_date_range(struct object *tag, struct rev_info *revs)
 	line = memmem(buf, size, "\ntagger ", 8);
 	if (!line++)
 		return 1;
-	lineend = memchr(line, buf + size - line, '\n');
-	line = memchr(line, lineend ? lineend - line : buf + size - line, '>');
+	lineend = memchr(line, '\n', buf + size - line);
+	line = memchr(line, '>', lineend ? lineend - line : buf + size - line);
 	if (!line++)
 		return 1;
 	date = strtoul(line, NULL, 10);
diff --git a/t/t5704-bundle.sh b/t/t5704-bundle.sh
index 2f063ea..8a4d299 100755
--- a/t/t5704-bundle.sh
+++ b/t/t5704-bundle.sh
@@ -14,7 +14,7 @@ test_expect_success 'setup' '
 	git tag -d third
 '
 
-test_expect_failure 'annotated tags can be excluded by rev-list options' '
+test_expect_success '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 &&
-- 
2.0.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] t5704: Fix the test that checks for excluded tags
  2014-08-02  8:39 [PATCH 1/2] t5704: Fix the test that checks for excluded tags Lukas Fleischer
  2014-08-02  8:39 ` [PATCH 2/2] bundle: Fix exclusion of annotated tags Lukas Fleischer
@ 2014-08-04 20:08 ` Junio C Hamano
  2014-08-04 20:28   ` Junio C Hamano
  2014-08-04 20:57 ` [PATCH 1/2] t5704: Complement annotated tag exclusion test Lukas Fleischer
  2 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2014-08-04 20:08 UTC (permalink / raw)
  To: Lukas Fleischer; +Cc: git, Johannes Schindelin

Lukas Fleischer <git@cryptocrack.de> writes:

> 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?

>  	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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] bundle: Fix exclusion of annotated tags
  2014-08-02  8:39 ` [PATCH 2/2] bundle: Fix exclusion of annotated tags Lukas Fleischer
@ 2014-08-04 20:10   ` Junio C Hamano
  0 siblings, 0 replies; 7+ messages in thread
From: Junio C Hamano @ 2014-08-04 20:10 UTC (permalink / raw)
  To: Lukas Fleischer; +Cc: git, Johannes Schindelin

Lukas Fleischer <git@cryptocrack.de> writes:

> In commit c9a42c4 (bundle: allow rev-list options to exclude annotated
> tags, 2009-01-02), support for excluding annotated tags outside the
> specified date range was added. However, the wrong order of parameters
> was chosen when calling memchr(). Fix this by swapping the character to
> search for with the maximum length parameter.
>
> Signed-off-by: Lukas Fleischer <git@cryptocrack.de>
> ---
>  bundle.c          | 4 ++--
>  t/t5704-bundle.sh | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/bundle.c b/bundle.c
> index 71a21a6..b708906 100644
> --- a/bundle.c
> +++ b/bundle.c
> @@ -221,8 +221,8 @@ static int is_tag_in_date_range(struct object *tag, struct rev_info *revs)
>  	line = memmem(buf, size, "\ntagger ", 8);
>  	if (!line++)
>  		return 1;
> -	lineend = memchr(line, buf + size - line, '\n');
> -	line = memchr(line, lineend ? lineend - line : buf + size - line, '>');
> +	lineend = memchr(line, '\n', buf + size - line);
> +	line = memchr(line, '>', lineend ? lineend - line : buf + size - line);

Good spotting; thanks.

>  	if (!line++)
>  		return 1;
>  	date = strtoul(line, NULL, 10);
> diff --git a/t/t5704-bundle.sh b/t/t5704-bundle.sh
> index 2f063ea..8a4d299 100755
> --- a/t/t5704-bundle.sh
> +++ b/t/t5704-bundle.sh
> @@ -14,7 +14,7 @@ test_expect_success 'setup' '
>  	git tag -d third
>  '
>  
> -test_expect_failure 'annotated tags can be excluded by rev-list options' '
> +test_expect_success '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 &&

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] t5704: Fix the test that checks for excluded tags
  2014-08-04 20:08 ` [PATCH 1/2] t5704: Fix the test that checks for excluded tags Junio C Hamano
@ 2014-08-04 20:28   ` Junio C Hamano
  0 siblings, 0 replies; 7+ messages in thread
From: Junio C Hamano @ 2014-08-04 20:28 UTC (permalink / raw)
  To: Lukas Fleischer; +Cc: git, Johannes Schindelin

Junio C Hamano <gitster@pobox.com> writes:

>> 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 &&
> ...
> Oh, wait.

In any case, the fix in 2/2 is real, and applying both and then
reverting the above hunk passes the test.  Also, applying both,
reverting the above hunk *and* reverting the fix to bundle.c of
course makes the rest fail.

So I would be tempted to squash these two patches into one using the
log message from the latter one, while excluding the change in the
above hunk.

Thanks.

>> @@ -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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] t5704: Complement annotated tag exclusion test
  2014-08-02  8:39 [PATCH 1/2] t5704: Fix the test that checks for excluded tags Lukas Fleischer
  2014-08-02  8:39 ` [PATCH 2/2] bundle: Fix exclusion of annotated tags Lukas Fleischer
  2014-08-04 20:08 ` [PATCH 1/2] t5704: Fix the test that checks for excluded tags Junio C Hamano
@ 2014-08-04 20:57 ` Lukas Fleischer
  2014-08-04 20:57   ` [PATCH 2/2] bundle: Fix exclusion of annotated tags Lukas Fleischer
  2 siblings, 1 reply; 7+ messages in thread
From: Lukas Fleischer @ 2014-08-04 20:57 UTC (permalink / raw)
  To: git

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. Complement
this test by also checking whether tags inside the date range are
included. Since this addition reveals that the annotated tag exclusion
is flawed, mark the test expect-failure for now.

Signed-off-by: Lukas Fleischer <git@cryptocrack.de>
---
I decided that it is still worthwhile to have this in a separate patch.
Feel free to squash 1/2 and 2/2 or let me know that they should be
merged if you prefer that.

 t/t5704-bundle.sh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/t/t5704-bundle.sh b/t/t5704-bundle.sh
index a45c316..2d53388 100755
--- a/t/t5704-bundle.sh
+++ b/t/t5704-bundle.sh
@@ -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 '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
-- 
2.0.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] bundle: Fix exclusion of annotated tags
  2014-08-04 20:57 ` [PATCH 1/2] t5704: Complement annotated tag exclusion test Lukas Fleischer
@ 2014-08-04 20:57   ` Lukas Fleischer
  0 siblings, 0 replies; 7+ messages in thread
From: Lukas Fleischer @ 2014-08-04 20:57 UTC (permalink / raw)
  To: git

In commit c9a42c4 (bundle: allow rev-list options to exclude annotated
tags, 2009-01-02), support for excluding annotated tags outside the
specified date range was added. However, the wrong order of parameters
was chosen when calling memchr(). Fix this by swapping the character to
search for with the maximum length parameter.

Signed-off-by: Lukas Fleischer <git@cryptocrack.de>
---
 bundle.c          | 4 ++--
 t/t5704-bundle.sh | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/bundle.c b/bundle.c
index 71a21a6..b708906 100644
--- a/bundle.c
+++ b/bundle.c
@@ -221,8 +221,8 @@ static int is_tag_in_date_range(struct object *tag, struct rev_info *revs)
 	line = memmem(buf, size, "\ntagger ", 8);
 	if (!line++)
 		return 1;
-	lineend = memchr(line, buf + size - line, '\n');
-	line = memchr(line, lineend ? lineend - line : buf + size - line, '>');
+	lineend = memchr(line, '\n', buf + size - line);
+	line = memchr(line, '>', lineend ? lineend - line : buf + size - line);
 	if (!line++)
 		return 1;
 	date = strtoul(line, NULL, 10);
diff --git a/t/t5704-bundle.sh b/t/t5704-bundle.sh
index 2d53388..a828c71 100755
--- a/t/t5704-bundle.sh
+++ b/t/t5704-bundle.sh
@@ -14,7 +14,7 @@ test_expect_success 'setup' '
 	git tag -d third
 '
 
-test_expect_failure 'tags can be excluded by rev-list options' '
+test_expect_success '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 &&
-- 
2.0.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-08-04 20:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-02  8:39 [PATCH 1/2] t5704: Fix the test that checks for excluded tags Lukas Fleischer
2014-08-02  8:39 ` [PATCH 2/2] bundle: Fix exclusion of annotated tags Lukas Fleischer
2014-08-04 20:10   ` Junio C Hamano
2014-08-04 20:08 ` [PATCH 1/2] t5704: Fix the test that checks for excluded tags Junio C Hamano
2014-08-04 20:28   ` Junio C Hamano
2014-08-04 20:57 ` [PATCH 1/2] t5704: Complement annotated tag exclusion test Lukas Fleischer
2014-08-04 20:57   ` [PATCH 2/2] bundle: Fix exclusion of annotated tags Lukas Fleischer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.