#!/bin/sh | |
test_description='merging with submodules' | |
. ./test-lib.sh | |
# | |
# history | |
# | |
# a --- c | |
# / \ / | |
# root X | |
# \ / \ | |
# b --- d | |
# | |
test_expect_success setup ' | |
mkdir sub && | |
(cd sub && | |
git init && | |
echo original > file && | |
git add file && | |
test_tick && | |
git commit -m sub-root) && | |
git add sub && | |
test_tick && | |
git commit -m root && | |
git checkout -b a master && | |
(cd sub && | |
echo A > file && | |
git add file && | |
test_tick && | |
git commit -m sub-a) && | |
git add sub && | |
test_tick && | |
git commit -m a && | |
git checkout -b b master && | |
(cd sub && | |
echo B > file && | |
git add file && | |
test_tick && | |
git commit -m sub-b) && | |
git add sub && | |
test_tick && | |
git commit -m b | |
git checkout -b c a && | |
git merge -s ours b && | |
git checkout -b d b && | |
git merge -s ours a | |
' | |
test_expect_success 'merging with modify/modify conflict' ' | |
git checkout -b test1 a && | |
test_must_fail git merge b && | |
test -f .git/MERGE_MSG && | |
git diff && | |
test -n "$(git ls-files -u)" | |
' | |
test_expect_success 'merging with a modify/modify conflict between merge bases' ' | |
git reset --hard HEAD && | |
git checkout -b test2 c && | |
git merge d | |
' | |
test_done |