 3749fde561
			
		
	
	3749fde561
	
	
	
		
			
			There is no need to duplicate the definition of $_z40 and $_x40 that test-lib.sh supplies the test scripts. Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			149 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='more git add -u'
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success setup '
 | |
| 	>xyzzy &&
 | |
| 	_empty=$(git hash-object --stdin <xyzzy) &&
 | |
| 	>yomin &&
 | |
| 	>caskly &&
 | |
| 	if test_have_prereq SYMLINKS; then
 | |
| 		ln -s frotz nitfol &&
 | |
| 		T_letter=T
 | |
| 	else
 | |
| 		printf %s frotz > nitfol &&
 | |
| 		T_letter=M
 | |
| 	fi &&
 | |
| 	mkdir rezrov &&
 | |
| 	>rezrov/bozbar &&
 | |
| 	git add caskly xyzzy yomin nitfol rezrov/bozbar &&
 | |
| 
 | |
| 	test_tick &&
 | |
| 	git commit -m initial
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success modify '
 | |
| 	rm -f xyzzy yomin nitfol caskly &&
 | |
| 	# caskly disappears (not a submodule)
 | |
| 	mkdir caskly &&
 | |
| 	# nitfol changes from symlink to regular
 | |
| 	>nitfol &&
 | |
| 	# rezrov/bozbar disappears
 | |
| 	rm -fr rezrov &&
 | |
| 	if test_have_prereq SYMLINKS; then
 | |
| 		ln -s xyzzy rezrov
 | |
| 	else
 | |
| 		printf %s xyzzy > rezrov
 | |
| 	fi &&
 | |
| 	# xyzzy disappears (not a submodule)
 | |
| 	mkdir xyzzy &&
 | |
| 	echo gnusto >xyzzy/bozbar &&
 | |
| 	# yomin gets replaced with a submodule
 | |
| 	mkdir yomin &&
 | |
| 	>yomin/yomin &&
 | |
| 	(
 | |
| 		cd yomin &&
 | |
| 		git init &&
 | |
| 		git add yomin &&
 | |
| 		git commit -m "sub initial"
 | |
| 	) &&
 | |
| 	yomin=$(GIT_DIR=yomin/.git git rev-parse HEAD) &&
 | |
| 	# yonk is added and then turned into a submodule
 | |
| 	# this should appear as T in diff-files and as A in diff-index
 | |
| 	>yonk &&
 | |
| 	git add yonk &&
 | |
| 	rm -f yonk &&
 | |
| 	mkdir yonk &&
 | |
| 	>yonk/yonk &&
 | |
| 	(
 | |
| 		cd yonk &&
 | |
| 		git init &&
 | |
| 		git add yonk &&
 | |
| 		git commit -m "sub initial"
 | |
| 	) &&
 | |
| 	yonk=$(GIT_DIR=yonk/.git git rev-parse HEAD) &&
 | |
| 	# zifmia is added and then removed
 | |
| 	# this should appear in diff-files but not in diff-index.
 | |
| 	>zifmia &&
 | |
| 	git add zifmia &&
 | |
| 	rm -f zifmia &&
 | |
| 	mkdir zifmia &&
 | |
| 	{
 | |
| 		git ls-tree -r HEAD |
 | |
| 		sed -e "s/^/:/" -e "
 | |
| 			/	caskly/{
 | |
| 				s/	caskly/ $_z40 D&/
 | |
| 				s/blob/000000/
 | |
| 			}
 | |
| 			/	nitfol/{
 | |
| 				s/	nitfol/ $_z40 $T_letter&/
 | |
| 				s/blob/100644/
 | |
| 			}
 | |
| 			/	rezrov.bozbar/{
 | |
| 				s/	rezrov.bozbar/ $_z40 D&/
 | |
| 				s/blob/000000/
 | |
| 			}
 | |
| 			/	xyzzy/{
 | |
| 				s/	xyzzy/ $_z40 D&/
 | |
| 				s/blob/000000/
 | |
| 			}
 | |
| 			/	yomin/{
 | |
| 			    s/	yomin/ $_z40 T&/
 | |
| 				s/blob/160000/
 | |
| 			}
 | |
| 		"
 | |
| 	} >expect &&
 | |
| 	{
 | |
| 		cat expect
 | |
| 		echo ":100644 160000 $_empty $_z40 T	yonk"
 | |
| 		echo ":100644 000000 $_empty $_z40 D	zifmia"
 | |
| 	} >expect-files &&
 | |
| 	{
 | |
| 		cat expect
 | |
| 		echo ":000000 160000 $_z40 $_z40 A	yonk"
 | |
| 	} >expect-index &&
 | |
| 	{
 | |
| 		echo "100644 $_empty 0	nitfol"
 | |
| 		echo "160000 $yomin 0	yomin"
 | |
| 		echo "160000 $yonk 0	yonk"
 | |
| 	} >expect-final
 | |
| '
 | |
| 
 | |
| test_expect_success diff-files '
 | |
| 	git diff-files --raw >actual &&
 | |
| 	test_cmp expect-files actual
 | |
| '
 | |
| 
 | |
| test_expect_success diff-index '
 | |
| 	git diff-index --raw HEAD -- >actual &&
 | |
| 	test_cmp expect-index actual
 | |
| '
 | |
| 
 | |
| test_expect_success 'add -u' '
 | |
| 	rm -f ".git/saved-index" &&
 | |
| 	cp -p ".git/index" ".git/saved-index" &&
 | |
| 	git add -u &&
 | |
| 	git ls-files -s >actual &&
 | |
| 	test_cmp expect-final actual
 | |
| '
 | |
| 
 | |
| test_expect_success 'commit -a' '
 | |
| 	if test -f ".git/saved-index"
 | |
| 	then
 | |
| 		rm -f ".git/index" &&
 | |
| 		mv ".git/saved-index" ".git/index"
 | |
| 	fi &&
 | |
| 	git commit -m "second" -a &&
 | |
| 	git ls-files -s >actual &&
 | |
| 	test_cmp expect-final actual &&
 | |
| 	rm -f .git/index &&
 | |
| 	git read-tree HEAD &&
 | |
| 	git ls-files -s >actual &&
 | |
| 	test_cmp expect-final actual
 | |
| '
 | |
| 
 | |
| test_done
 |