Merge branch 'lf/bundle-exclusion'
authorJunio C Hamano <gitster@pobox.com>
Tue, 9 Sep 2014 19:53:58 +0000 (12:53 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 9 Sep 2014 19:53:59 +0000 (12:53 -0700)
"git bundle create" with date-range specification were meant to
exclude tags outside the range

* lf/bundle-exclusion:
bundle: fix exclusion of annotated tags

bundle.c
t/t5704-bundle.sh
index 71a21a67fa6bc5ce718dfc6593035f577b2dbc15..b708906cdbd2a14d0e5bcd1e1288c78777cf6a5e 100644 (file)
--- 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);
index a45c31692e17218988e6619742c366043e426039..348d9b3bc7ad3ea512f68b6200481c9f6b90d792 100755 (executable)
@@ -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