31 lines
		
	
	
		
			848 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			31 lines
		
	
	
		
			848 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/sh
 | |
| 
 | |
| test_description='git read-tree in partial clones'
 | |
| 
 | |
| TEST_NO_CREATE_REPO=1
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success 'read-tree in partial clone prefetches in one batch' '
 | |
| 	test_when_finished "rm -rf server client trace" &&
 | |
| 
 | |
| 	git init server &&
 | |
| 	echo foo >server/one &&
 | |
| 	echo bar >server/two &&
 | |
| 	git -C server add one two &&
 | |
| 	git -C server commit -m "initial commit" &&
 | |
| 	TREE=$(git -C server rev-parse HEAD^{tree}) &&
 | |
| 
 | |
| 	git -C server config uploadpack.allowfilter 1 &&
 | |
| 	git -C server config uploadpack.allowanysha1inwant 1 &&
 | |
| 	git clone --bare --filter=blob:none "file://$(pwd)/server" client &&
 | |
| 	GIT_TRACE_PACKET="$(pwd)/trace" git -C client read-tree $TREE &&
 | |
| 
 | |
| 	# "done" marks the end of negotiation (once per fetch). Expect that
 | |
| 	# only one fetch occurs.
 | |
| 	grep "fetch> done" trace >donelines &&
 | |
| 	test_line_count = 1 donelines
 | |
| '
 | |
| 
 | |
| test_done
 |