blob: 18372caa151a30ac0ec1f247e793164fe667358a [file] [log] [blame]
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +01001#!/bin/sh
2
3test_description='pull options'
4
5. ./test-lib.sh
6
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +01007test_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
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010014test_expect_success 'git pull -q' '
15 mkdir clonedq &&
Junio C Hamano13e65fe2010-02-24 10:22:05 -080016 (cd clonedq && git init &&
17 git pull -q "../parent" >out 2>err &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070018 test_must_be_empty err &&
19 test_must_be_empty out)
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010020'
21
Peter Eisentrautce4c4d42013-03-14 22:26:08 -040022test_expect_success 'git pull -q --rebase' '
23 mkdir clonedqrb &&
24 (cd clonedqrb && git init &&
25 git pull -q --rebase "../parent" >out 2>err &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070026 test_must_be_empty err &&
27 test_must_be_empty out &&
Peter Eisentrautce4c4d42013-03-14 22:26:08 -040028 git pull -q --rebase "../parent" >out 2>err &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070029 test_must_be_empty err &&
30 test_must_be_empty out)
Peter Eisentrautce4c4d42013-03-14 22:26:08 -040031'
32
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010033test_expect_success 'git pull' '
34 mkdir cloned &&
Junio C Hamano13e65fe2010-02-24 10:22:05 -080035 (cd cloned && git init &&
36 git pull "../parent" >out 2>err &&
37 test -s err &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070038 test_must_be_empty out)
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010039'
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010040
Peter Eisentrautce4c4d42013-03-14 22:26:08 -040041test_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 &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070046 test_must_be_empty out)
Peter Eisentrautce4c4d42013-03-14 22:26:08 -040047'
48
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010049test_expect_success 'git pull -v' '
50 mkdir clonedv &&
Junio C Hamano13e65fe2010-02-24 10:22:05 -080051 (cd clonedv && git init &&
52 git pull -v "../parent" >out 2>err &&
53 test -s err &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070054 test_must_be_empty out)
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010055'
56
Peter Eisentrautce4c4d42013-03-14 22:26:08 -040057test_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 &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070062 test_must_be_empty out)
Peter Eisentrautce4c4d42013-03-14 22:26:08 -040063'
64
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010065test_expect_success 'git pull -v -q' '
66 mkdir clonedvq &&
Junio C Hamano13e65fe2010-02-24 10:22:05 -080067 (cd clonedvq && git init &&
68 git pull -v -q "../parent" >out 2>err &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070069 test_must_be_empty out &&
70 test_must_be_empty err)
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010071'
72
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010073test_expect_success 'git pull -q -v' '
74 mkdir clonedqv &&
Junio C Hamano13e65fe2010-02-24 10:22:05 -080075 (cd clonedqv && git init &&
76 git pull -q -v "../parent" >out 2>err &&
Junio C Hamanoca8d1482013-06-09 11:29:20 -070077 test_must_be_empty out &&
Junio C Hamano13e65fe2010-02-24 10:22:05 -080078 test -s err)
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +010079'
80
Junio C Hamanobba53222010-02-24 10:22:06 -080081test_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
Junio C Hamanoe6cc5102010-02-24 11:02:05 -0800102test_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
Paul Tan5504f132015-05-29 19:44:44 +0800120test_expect_success 'git pull --dry-run' '
121 test_when_finished "rm -rf clonedry" &&
122 git init clonedry &&
123 (
124 cd clonedry &&
125 git pull --dry-run ../parent &&
126 test_path_is_missing .git/FETCH_HEAD &&
127 test_path_is_missing .git/refs/heads/master &&
128 test_path_is_missing .git/index &&
129 test_path_is_missing file
130 )
131'
132
Paul Taneb2a8d92015-06-02 22:22:52 +0800133test_expect_success 'git pull --all --dry-run' '
134 test_when_finished "rm -rf cloneddry" &&
135 git init clonedry &&
136 (
137 cd clonedry &&
138 git remote add origin ../parent &&
139 git pull --all --dry-run &&
140 test_path_is_missing .git/FETCH_HEAD &&
141 test_path_is_missing .git/refs/remotes/origin/master &&
142 test_path_is_missing .git/index &&
143 test_path_is_missing file
144 )
145'
146
Tuncer Ayaz7f87aff2008-11-15 01:14:24 +0100147test_done