@@ -26,15 +26,15 @@ check_pushed_commit () {
2626# $2 = expected target branch for the push
2727# $3 = [optional] repo to check for actual output (repo1 by default)
2828test_push_success () {
29- git -c push.default=" $1 " push &&
29+ git ${1 : + -c push.default=" $1 " } push &&
3030 check_pushed_commit HEAD " $2 " " $3 "
3131}
3232
3333# $1 = push.default value
3434# check that push fails and does not modify any remote branch
3535test_push_failure () {
3636 git --git-dir=repo1 log --no-walk --format=' %h %s' --all > expect &&
37- test_must_fail git -c push.default=" $1 " push &&
37+ test_must_fail git ${1 : + -c push.default=" $1 " } push &&
3838 git --git-dir=repo1 log --no-walk --format=' %h %s' --all > actual &&
3939 test_cmp expect actual
4040}
@@ -172,4 +172,32 @@ test_pushdefault_workflow success simple master triangular
172172# master is updated (parent2 does not have foo)
173173test_pushdefault_workflow success matching master triangular
174174
175+ # default tests, when no push-default is specified. This
176+ # should behave the same as "simple" in non-triangular
177+ # settings, and as "current" otherwise.
178+
179+ test_expect_success ' default behavior allows "simple" push' '
180+ test_config branch.master.remote parent1 &&
181+ test_config branch.master.merge refs/heads/master &&
182+ test_config remote.pushdefault parent1 &&
183+ test_commit default-master-master &&
184+ test_push_success "" master
185+ '
186+
187+ test_expect_success ' default behavior rejects non-simple push' '
188+ test_config branch.master.remote parent1 &&
189+ test_config branch.master.merge refs/heads/foo &&
190+ test_config remote.pushdefault parent1 &&
191+ test_commit default-master-foo &&
192+ test_push_failure ""
193+ '
194+
195+ test_expect_success ' default triangular behavior acts like "current"' '
196+ test_config branch.master.remote parent1 &&
197+ test_config branch.master.merge refs/heads/foo &&
198+ test_config remote.pushdefault parent2 &&
199+ test_commit default-triangular &&
200+ test_push_success "" master repo2
201+ '
202+
175203test_done
0 commit comments