refs.c: add a function to append a reflog entry to a fd
[git] / t / t5802-connect-helper.sh
1 #!/bin/sh
2
3 test_description='ext::cmd remote "connect" helper'
4 . ./test-lib.sh
5
6 test_expect_success setup '
7         test_tick &&
8         git commit --allow-empty -m initial &&
9         test_tick &&
10         git commit --allow-empty -m second &&
11         test_tick &&
12         git commit --allow-empty -m third &&
13         test_tick &&
14         git tag -a -m "tip three" three &&
15
16         test_tick &&
17         git commit --allow-empty -m fourth
18 '
19
20 test_expect_success clone '
21         cmd=$(echo "echo >&2 ext::sh invoked && %S .." | sed -e "s/ /% /g") &&
22         git clone "ext::sh -c %S% ." dst &&
23         git for-each-ref refs/heads/ refs/tags/ >expect &&
24         (
25                 cd dst &&
26                 git config remote.origin.url "ext::sh -c $cmd" &&
27                 git for-each-ref refs/heads/ refs/tags/
28         ) >actual &&
29         test_cmp expect actual
30 '
31
32 test_expect_success 'update following tag' '
33         test_tick &&
34         git commit --allow-empty -m fifth &&
35         test_tick &&
36         git tag -a -m "tip five" five &&
37         git for-each-ref refs/heads/ refs/tags/ >expect &&
38         (
39                 cd dst &&
40                 git pull &&
41                 git for-each-ref refs/heads/ refs/tags/ >../actual
42         ) &&
43         test_cmp expect actual
44 '
45
46 test_expect_success 'update backfilled tag' '
47         test_tick &&
48         git commit --allow-empty -m sixth &&
49         test_tick &&
50         git tag -a -m "tip two" two three^1 &&
51         git for-each-ref refs/heads/ refs/tags/ >expect &&
52         (
53                 cd dst &&
54                 git pull &&
55                 git for-each-ref refs/heads/ refs/tags/ >../actual
56         ) &&
57         test_cmp expect actual
58 '
59
60 test_expect_success 'update backfilled tag without primary transfer' '
61         test_tick &&
62         git tag -a -m "tip one " one two^1 &&
63         git for-each-ref refs/heads/ refs/tags/ >expect &&
64         (
65                 cd dst &&
66                 git pull &&
67                 git for-each-ref refs/heads/ refs/tags/ >../actual
68         ) &&
69         test_cmp expect actual
70 '
71
72 test_done