summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Fleischer <git@cryptocrack.de>2014-08-02 10:39:06 +0200
committerJunio C Hamano <gitster@pobox.com>2014-08-07 15:35:25 -0700
commit2c8544ab91812c264666c9feb335ce3091fa29c1 (patch)
tree229f93a11edfdf30ea268966fcf3907e0ca83122
parente6aaa393478bf3ee9f4cde8d82cd258c034cd335 (diff)
downloadgit-2c8544ab91812c264666c9feb335ce3091fa29c1.tar.gz
bundle: fix exclusion of annotated tagslf/bundle-exclusion
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. Also cover this behavior with an additional test. Signed-off-by: Lukas Fleischer <git@cryptocrack.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--bundle.c4
-rwxr-xr-xt/t5704-bundle.sh5
2 files changed, 6 insertions, 3 deletions
diff --git a/bundle.c b/bundle.c
index 3d64311373..8b3b80eddf 100644
--- a/bundle.c
+++ b/bundle.c
@@ -223,8 +223,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 a45c31692e..348d9b3bc7 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_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 &&
git bundle create bundle --all --since=7.Apr.2005.15:16:00.-0700 &&
git ls-remote bundle > output &&
! grep tag output