3 test_description='git merge
 
   5 Testing octopus merge when reducing parents to independent branches.'
 
  14 # So 1, 2, 3 and 5 should be kept, 4 should be avoided.
 
  16 test_expect_success 'setup' '
 
  25         git reset --hard c0 &&
 
  30         git reset --hard c0 &&
 
  35         git reset --hard c0 &&
 
  46 test_expect_success 'merge c1 with c2, c3, c4, c5' '
 
  47         git reset --hard c1 &&
 
  48         git merge c2 c3 c4 c5 &&
 
  49         test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" &&
 
  50         test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" &&
 
  51         test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" &&
 
  52         test "$(git rev-parse c3)" = "$(git rev-parse HEAD^3)" &&
 
  53         test "$(git rev-parse c5)" = "$(git rev-parse HEAD^4)" &&
 
  54         git diff --exit-code &&
 
  63 test_expect_success 'setup' '
 
  81 test_expect_success 'merge E and I' '
 
  86 test_expect_success 'verify merge result' '
 
  87         test $(git rev-parse HEAD^1) = $(git rev-parse E) &&
 
  88         test $(git rev-parse HEAD^2) = $(git rev-parse I)
 
  91 test_expect_success 'add conflicts' '
 
 104 test_expect_success 'merge E2 and I2, causing a conflict and resolve it' '
 
 105         git reset --hard A &&
 
 106         test_must_fail git merge E2 I2 &&
 
 109         git commit -m "resolve conflict"
 
 112 test_expect_success 'verify merge result' '
 
 113         test $(git rev-parse HEAD^1) = $(git rev-parse E2) &&
 
 114         test $(git rev-parse HEAD^2) = $(git rev-parse I2)