Code

25244bf8e8fb760a1b51dcbc862d7789079e282b
[git.git] / t / t5514-fetch-multiple.sh
1 #!/bin/sh
3 test_description='fetch --all works correctly'
5 . ./test-lib.sh
7 setup_repository () {
8         mkdir "$1" && (
9         cd "$1" &&
10         git init &&
11         >file &&
12         git add file &&
13         test_tick &&
14         git commit -m "Initial" &&
15         git checkout -b side &&
16         >elif &&
17         git add elif &&
18         test_tick &&
19         git commit -m "Second" &&
20         git checkout master
21         )
22 }
24 test_expect_success setup '
25         setup_repository one &&
26         setup_repository two &&
27         (
28                 cd two && git branch another
29         ) &&
30         git clone --mirror two three
31         git clone one test
32 '
34 cat > test/expect << EOF
35   one/master
36   one/side
37   origin/HEAD -> origin/master
38   origin/master
39   origin/side
40   three/another
41   three/master
42   three/side
43   two/another
44   two/master
45   two/side
46 EOF
48 test_expect_success 'git fetch --all' '
49         (cd test &&
50          git remote add one ../one &&
51          git remote add two ../two &&
52          git remote add three ../three &&
53          git fetch --all &&
54          git branch -r > output &&
55          test_cmp expect output)
56 '
58 test_expect_success 'git fetch --all should continue if a remote has errors' '
59         (git clone one test2 &&
60          cd test2 &&
61          git remote add bad ../non-existing &&
62          git remote add one ../one &&
63          git remote add two ../two &&
64          git remote add three ../three &&
65          test_must_fail git fetch --all &&
66          git branch -r > output &&
67          test_cmp ../test/expect output)
68 '
70 test_expect_success 'git fetch --all does not allow non-option arguments' '
71         (cd test &&
72          test_must_fail git fetch --all origin &&
73          test_must_fail git fetch --all origin master)
74 '
76 test_done