You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.1 KiB
74 lines
1.1 KiB
#!/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
|
|
|