44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='performance of fetches from bitmapped packs'
 | |
| . ./perf-lib.sh
 | |
| 
 | |
| test_perf_default_repo
 | |
| 
 | |
| test_expect_success 'create bitmapped server repo' '
 | |
| 	git config pack.writebitmaps true &&
 | |
| 	git repack -ad
 | |
| '
 | |
| 
 | |
| # simulate a fetch from a repository that last fetched N days ago, for
 | |
| # various values of N. We do so by following the first-parent chain,
 | |
| # and assume the first entry in the chain that is N days older than the current
 | |
| # HEAD is where the HEAD would have been then.
 | |
| for days in 1 2 4 8 16 32 64 128; do
 | |
| 	title=$(printf '%10s' "($days days)")
 | |
| 	test_expect_success "setup revs from $days days ago" '
 | |
| 		now=$(git log -1 --format=%ct HEAD) &&
 | |
| 		then=$(($now - ($days * 86400))) &&
 | |
| 		tip=$(git rev-list -1 --first-parent --until=$then HEAD) &&
 | |
| 		{
 | |
| 			echo HEAD &&
 | |
| 			echo ^$tip
 | |
| 		} >revs
 | |
| 	'
 | |
| 
 | |
| 	test_perf "server $title" '
 | |
| 		git pack-objects --stdout --revs \
 | |
| 				 --thin --delta-base-offset \
 | |
| 				 <revs >tmp.pack
 | |
| 	'
 | |
| 
 | |
| 	test_size "size   $title" '
 | |
| 		wc -c <tmp.pack
 | |
| 	'
 | |
| 
 | |
| 	test_perf "client $title" '
 | |
| 		git index-pack --stdin --fix-thin <tmp.pack
 | |
| 	'
 | |
| done
 | |
| 
 | |
| test_done
 |