t / t3504-cherry-pick-rerere.shon commit Merge branch 'jc/maint-rebase-rewrite-last-skip' (5765870)
   1#!/bin/sh
   2
   3test_description='cherry-pick should rerere for conflicts'
   4
   5. ./test-lib.sh
   6
   7test_expect_success setup '
   8        echo foo >foo &&
   9        git add foo && test_tick && git commit -q -m 1 &&
  10        echo foo-master >foo &&
  11        git add foo && test_tick && git commit -q -m 2 &&
  12
  13        git checkout -b dev HEAD^ &&
  14        echo foo-dev >foo &&
  15        git add foo && test_tick && git commit -q -m 3 &&
  16        git config rerere.enabled true
  17'
  18
  19test_expect_success 'conflicting merge' '
  20        test_must_fail git merge master
  21'
  22
  23test_expect_success 'fixup' '
  24        echo foo-dev >foo &&
  25        git add foo && test_tick && git commit -q -m 4 &&
  26        git reset --hard HEAD^ &&
  27        echo foo-dev >expect
  28'
  29
  30test_expect_success 'cherry-pick conflict' '
  31        test_must_fail git cherry-pick master &&
  32        test_cmp expect foo
  33'
  34
  35test_expect_success 'reconfigure' '
  36        git config rerere.enabled false &&
  37        git reset --hard
  38'
  39
  40test_expect_success 'cherry-pick conflict without rerere' '
  41        test_must_fail git cherry-pick master &&
  42        test_must_fail test_cmp expect foo
  43'
  44
  45test_done