75 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/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
 |