 bef3894847
			
		
	
	bef3894847
	
	
	
		
			
			While 'git checkout <submodule>' should not update the submodule's working directory, it should update the index. This is in line with how submodules are handled in the rest of Git. While at it, test 'git reset [<commit>] <submodule>', too. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			43 lines
		
	
	
		
			982 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			982 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='checkout can handle submodules'
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success 'setup' '
 | |
| 	mkdir submodule &&
 | |
| 	(cd submodule &&
 | |
| 	 git init &&
 | |
| 	 test_commit first) &&
 | |
| 	git add submodule &&
 | |
| 	test_tick &&
 | |
| 	git commit -m superproject &&
 | |
| 	(cd submodule &&
 | |
| 	 test_commit second) &&
 | |
| 	git add submodule &&
 | |
| 	test_tick &&
 | |
| 	git commit -m updated.superproject
 | |
| '
 | |
| 
 | |
| test_expect_success '"reset <submodule>" updates the index' '
 | |
| 	git update-index --refresh &&
 | |
| 	git diff-files --quiet &&
 | |
| 	git diff-index --quiet --cached HEAD &&
 | |
| 	test_must_fail git reset HEAD^ submodule &&
 | |
| 	test_must_fail git diff-files --quiet &&
 | |
| 	git reset submodule &&
 | |
| 	git diff-files --quiet
 | |
| '
 | |
| 
 | |
| test_expect_success '"checkout <submodule>" updates the index only' '
 | |
| 	git update-index --refresh &&
 | |
| 	git diff-files --quiet &&
 | |
| 	git diff-index --quiet --cached HEAD &&
 | |
| 	git checkout HEAD^ submodule &&
 | |
| 	test_must_fail git diff-files --quiet &&
 | |
| 	git checkout HEAD submodule &&
 | |
| 	git diff-files --quiet
 | |
| '
 | |
| 
 | |
| test_done
 |