@@ -225,12 +225,28 @@ test_expect_success 'merge c1 with c2 and c3' '
225
225
226
226
test_debug ' git log --graph --decorate --oneline --all'
227
227
228
- test_expect_success ' failing merges with --ff-only' '
228
+ test_expect_success ' merges with --ff-only' '
229
229
git reset --hard c1 &&
230
230
test_tick &&
231
231
test_must_fail git merge --ff-only c2 &&
232
232
test_must_fail git merge --ff-only c3 &&
233
- test_must_fail git merge --ff-only c2 c3
233
+ test_must_fail git merge --ff-only c2 c3 &&
234
+ git reset --hard c0 &&
235
+ git merge c3 &&
236
+ verify_head $c3
237
+ '
238
+
239
+ test_expect_success ' merges with merge.ff=only' '
240
+ git reset --hard c1 &&
241
+ test_tick &&
242
+ test_when_finished "git config --unset merge.ff" &&
243
+ git config merge.ff only &&
244
+ test_must_fail git merge c2 &&
245
+ test_must_fail git merge c3 &&
246
+ test_must_fail git merge c2 c3 &&
247
+ git reset --hard c0 &&
248
+ git merge c3 &&
249
+ verify_head $c3
234
250
'
235
251
236
252
test_expect_success ' merge c0 with c1 (no-commit)' '
@@ -448,6 +464,29 @@ test_expect_success 'merge c0 with c1 (no-ff)' '
448
464
449
465
test_debug ' git log --graph --decorate --oneline --all'
450
466
467
+ test_expect_success ' merge c0 with c1 (merge.ff=false)' '
468
+ git reset --hard c0 &&
469
+ git config merge.ff false &&
470
+ test_tick &&
471
+ git merge c1 &&
472
+ git config --remove-section merge &&
473
+ verify_merge file result.1 &&
474
+ verify_parents $c0 $c1
475
+ '
476
+ test_debug ' git log --graph --decorate --oneline --all'
477
+
478
+ test_expect_success ' combine branch.master.mergeoptions with merge.ff' '
479
+ git reset --hard c0 &&
480
+ git config branch.master.mergeoptions --ff
481
+ git config merge.ff false
482
+ test_tick &&
483
+ git merge c1 &&
484
+ git config --remove-section "branch.master" &&
485
+ git config --remove-section "merge" &&
486
+ verify_merge file result.1 &&
487
+ verify_parents "$c0"
488
+ '
489
+
451
490
test_expect_success ' combining --squash and --no-ff is refused' '
452
491
test_must_fail git merge --squash --no-ff c1 &&
453
492
test_must_fail git merge --no-ff --squash c1
0 commit comments