1#!/bin/sh
2
3test_description='pull options'
4
5. ./test-lib.sh
6
7test_expect_success 'setup' '
8 mkdir parent &&
9 (cd parent && git init &&
10 echo one >file && git add file &&
11 git commit -m one)
12'
13
14test_expect_success 'git pull -q' '
15 mkdir clonedq &&
16 (cd clonedq && git init &&
17 git pull -q "../parent" >out 2>err &&
18 test ! -s err &&
19 test ! -s out)
20'
21
22test_expect_success 'git pull -q --rebase' '
23 mkdir clonedqrb &&
24 (cd clonedqrb && git init &&
25 git pull -q --rebase "../parent" >out 2>err &&
26 test ! -s err &&
27 test ! -s out &&
28 git pull -q --rebase "../parent" >out 2>err &&
29 test ! -s err &&
30 test ! -s out)
31'
32
33test_expect_success 'git pull' '
34 mkdir cloned &&
35 (cd cloned && git init &&
36 git pull "../parent" >out 2>err &&
37 test -s err &&
38 test ! -s out)
39'
40
41test_expect_success 'git pull --rebase' '
42 mkdir clonedrb &&
43 (cd clonedrb && git init &&
44 git pull --rebase "../parent" >out 2>err &&
45 test -s err &&
46 test ! -s out)
47'
48
49test_expect_success 'git pull -v' '
50 mkdir clonedv &&
51 (cd clonedv && git init &&
52 git pull -v "../parent" >out 2>err &&
53 test -s err &&
54 test ! -s out)
55'
56
57test_expect_success 'git pull -v --rebase' '
58 mkdir clonedvrb &&
59 (cd clonedvrb && git init &&
60 git pull -v --rebase "../parent" >out 2>err &&
61 test -s err &&
62 test ! -s out)
63'
64
65test_expect_success 'git pull -v -q' '
66 mkdir clonedvq &&
67 (cd clonedvq && git init &&
68 git pull -v -q "../parent" >out 2>err &&
69 test ! -s out &&
70 test ! -s err)
71'
72
73test_expect_success 'git pull -q -v' '
74 mkdir clonedqv &&
75 (cd clonedqv && git init &&
76 git pull -q -v "../parent" >out 2>err &&
77 test ! -s out &&
78 test -s err)
79'
80
81test_expect_success 'git pull --force' '
82 mkdir clonedoldstyle &&
83 (cd clonedoldstyle && git init &&
84 cat >>.git/config <<-\EOF &&
85 [remote "one"]
86 url = ../parent
87 fetch = refs/heads/master:refs/heads/mirror
88 [remote "two"]
89 url = ../parent
90 fetch = refs/heads/master:refs/heads/origin
91 [branch "master"]
92 remote = two
93 merge = refs/heads/master
94 EOF
95 git pull two &&
96 test_commit A &&
97 git branch -f origin &&
98 git pull --all --force
99 )
100'
101
102test_expect_success 'git pull --all' '
103 mkdir clonedmulti &&
104 (cd clonedmulti && git init &&
105 cat >>.git/config <<-\EOF &&
106 [remote "one"]
107 url = ../parent
108 fetch = refs/heads/*:refs/remotes/one/*
109 [remote "two"]
110 url = ../parent
111 fetch = refs/heads/*:refs/remotes/two/*
112 [branch "master"]
113 remote = one
114 merge = refs/heads/master
115 EOF
116 git pull --all
117 )
118'
119
120test_done