t / t5607-clone-bundle.shon commit Merge branch 'master' of https://github.com/vnwildman/git (26a567e)
   1#!/bin/sh
   2
   3test_description='some bundle related tests'
   4. ./test-lib.sh
   5
   6test_expect_success 'setup' '
   7        test_commit initial &&
   8        test_tick &&
   9        git tag -m tag tag &&
  10        test_commit second &&
  11        test_commit third &&
  12        git tag -d initial &&
  13        git tag -d second &&
  14        git tag -d third
  15'
  16
  17test_expect_success 'annotated tags can be excluded by rev-list options' '
  18        git bundle create bundle --all --since=7.Apr.2005.15:14:00.-0700 &&
  19        git ls-remote bundle > output &&
  20        grep tag output &&
  21        git bundle create bundle --all --since=7.Apr.2005.15:16:00.-0700 &&
  22        git ls-remote bundle > output &&
  23        ! grep tag output
  24'
  25
  26test_expect_success 'die if bundle file cannot be created' '
  27        mkdir adir &&
  28        test_must_fail git bundle create adir --all
  29'
  30
  31test_expect_failure 'bundle --stdin' '
  32        echo master | git bundle create stdin-bundle.bdl --stdin &&
  33        git ls-remote stdin-bundle.bdl >output &&
  34        grep master output
  35'
  36
  37test_expect_failure 'bundle --stdin <rev-list options>' '
  38        echo master | git bundle create hybrid-bundle.bdl --stdin tag &&
  39        git ls-remote hybrid-bundle.bdl >output &&
  40        grep master output
  41'
  42
  43test_expect_success 'empty bundle file is rejected' '
  44        : >empty-bundle &&
  45        test_must_fail git fetch empty-bundle
  46'
  47
  48# This triggers a bug in older versions where the resulting line (with
  49# --pretty=oneline) was longer than a 1024-char buffer.
  50test_expect_success 'ridiculously long subject in boundary' '
  51        : >file4 &&
  52        test_tick &&
  53        git add file4 &&
  54        printf "%01200d\n" 0 | git commit -F - &&
  55        test_commit fifth &&
  56        git bundle create long-subject-bundle.bdl HEAD^..HEAD &&
  57        git bundle list-heads long-subject-bundle.bdl >heads &&
  58        test -s heads &&
  59        git fetch long-subject-bundle.bdl &&
  60        sed -n "/^-/{p;q;}" long-subject-bundle.bdl >boundary &&
  61        grep "^-[0-9a-f]\\{40\\} " boundary
  62'
  63
  64test_expect_success 'prerequisites with an empty commit message' '
  65        : >file1 &&
  66        git add file1 &&
  67        test_tick &&
  68        git commit --allow-empty-message -m "" &&
  69        test_commit file2 &&
  70        git bundle create bundle HEAD^.. &&
  71        git bundle verify bundle
  72'
  73
  74test_expect_success 'failed bundle creation does not leave cruft' '
  75        # This fails because the bundle would be empty.
  76        test_must_fail git bundle create fail.bundle master..master &&
  77        test_path_is_missing fail.bundle.lock
  78'
  79
  80test_done