 6693fb3f01
			
		
	
	6693fb3f01
	
	
	
		
			
			Convert the merge-specific tests (those in the t64xx range) over to using 'git init' instead of 'test_create_repo'. Reviewed-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			146 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description="merge cases"
 | |
| 
 | |
| # The setup for all of them, pictorially, is:
 | |
| #
 | |
| #      A
 | |
| #      o
 | |
| #     / \
 | |
| #  O o   ?
 | |
| #     \ /
 | |
| #      o
 | |
| #      B
 | |
| #
 | |
| # To help make it easier to follow the flow of tests, they have been
 | |
| # divided into sections and each test will start with a quick explanation
 | |
| # of what commits O, A, and B contain.
 | |
| #
 | |
| # Notation:
 | |
| #    z/{b,c}   means  files z/b and z/c both exist
 | |
| #    x/d_1     means  file x/d exists with content d1.  (Purpose of the
 | |
| #                     underscore notation is to differentiate different
 | |
| #                     files that might be renamed into each other's paths.)
 | |
| 
 | |
| . ./test-lib.sh
 | |
| . "$TEST_DIRECTORY"/lib-merge.sh
 | |
| 
 | |
| 
 | |
| # Testcase basic, conflicting changes in 'numerals'
 | |
| 
 | |
| test_setup_numerals () {
 | |
| 	git init numerals_$1 &&
 | |
| 	(
 | |
| 		cd numerals_$1 &&
 | |
| 
 | |
| 		>README &&
 | |
| 		test_write_lines I II III >numerals &&
 | |
| 		git add README numerals &&
 | |
| 		test_tick &&
 | |
| 		git commit -m "O" &&
 | |
| 
 | |
| 		git branch O &&
 | |
| 		git branch A &&
 | |
| 		git branch B &&
 | |
| 
 | |
| 		git checkout A &&
 | |
| 		test_write_lines I II III IIII >numerals &&
 | |
| 		git add numerals &&
 | |
| 		test_tick &&
 | |
| 		git commit -m "A" &&
 | |
| 
 | |
| 		git checkout B &&
 | |
| 		test_write_lines I II III IV >numerals &&
 | |
| 		git add numerals &&
 | |
| 		test_tick &&
 | |
| 		git commit -m "B" &&
 | |
| 
 | |
| 		cat <<-EOF >expected-index &&
 | |
| 		H README
 | |
| 		M numerals
 | |
| 		M numerals
 | |
| 		M numerals
 | |
| 		EOF
 | |
| 
 | |
| 		cat <<-EOF >expected-merge
 | |
| 		I
 | |
| 		II
 | |
| 		III
 | |
| 		<<<<<<< HEAD
 | |
| 		IIII
 | |
| 		=======
 | |
| 		IV
 | |
| 		>>>>>>> B^0
 | |
| 		EOF
 | |
| 
 | |
| 	)
 | |
| }
 | |
| 
 | |
| test_expect_success 'conflicting entries written to worktree even if sparse' '
 | |
| 	test_setup_numerals plain &&
 | |
| 	(
 | |
| 		cd numerals_plain &&
 | |
| 
 | |
| 		git checkout A^0 &&
 | |
| 
 | |
| 		test_path_is_file README &&
 | |
| 		test_path_is_file numerals &&
 | |
| 
 | |
| 		git sparse-checkout init &&
 | |
| 		git sparse-checkout set --no-cone README &&
 | |
| 
 | |
| 		test_path_is_file README &&
 | |
| 		test_path_is_missing numerals &&
 | |
| 
 | |
| 		test_must_fail git merge -s recursive B^0 &&
 | |
| 
 | |
| 		git ls-files -t >index_files &&
 | |
| 		test_cmp expected-index index_files &&
 | |
| 
 | |
| 		test_path_is_file README &&
 | |
| 		test_path_is_file numerals &&
 | |
| 
 | |
| 		test_cmp expected-merge numerals &&
 | |
| 
 | |
| 		# 4 other files:
 | |
| 		#   * expected-merge
 | |
| 		#   * expected-index
 | |
| 		#   * index_files
 | |
| 		#   * others
 | |
| 		git ls-files -o >others &&
 | |
| 		test_line_count = 4 others
 | |
| 	)
 | |
| '
 | |
| 
 | |
| test_expect_success 'present-despite-SKIP_WORKTREE handled reasonably' '
 | |
| 	test_setup_numerals in_the_way &&
 | |
| 	(
 | |
| 		cd numerals_in_the_way &&
 | |
| 
 | |
| 		git checkout A^0 &&
 | |
| 
 | |
| 		test_path_is_file README &&
 | |
| 		test_path_is_file numerals &&
 | |
| 
 | |
| 		git sparse-checkout init &&
 | |
| 		git sparse-checkout set --no-cone README &&
 | |
| 
 | |
| 		test_path_is_file README &&
 | |
| 		test_path_is_missing numerals &&
 | |
| 
 | |
| 		echo foobar >numerals &&
 | |
| 
 | |
| 		test_must_fail git merge -s recursive B^0 &&
 | |
| 
 | |
| 		test_path_is_missing .git/MERGE_HEAD &&
 | |
| 
 | |
| 		test_path_is_file numerals &&
 | |
| 
 | |
| 		# numerals should still have "foobar" in it
 | |
| 		echo foobar >expect &&
 | |
| 		test_cmp expect numerals
 | |
| 	)
 | |
| '
 | |
| 
 | |
| test_done
 |