midx: add test that 'expire' respects .keep files
The 'git multi-pack-index expire' subcommand may delete packs that are not needed from the perspective of the multi-pack-index. If a pack has a .keep file, then we should not delete that pack. Add a test that ensures we preserve a pack that would otherwise be expired. First, create a new pack that contains every object in the repo, then add it to the multi-pack-index. Then create a .keep file for a pack starting with "a-pack" that was added in the previous test. Finally, expire and verify that the pack remains and the other packs were expired. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
		
				
					committed by
					
						
						Junio C Hamano
					
				
			
			
				
	
			
			
			
						parent
						
							d2743315d4
						
					
				
				
					commit
					10bfa3f7f5
				
			@ -510,4 +510,22 @@ test_expect_success 'expire works when adding new packs' '
 | 
			
		||||
	)
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
test_expect_success 'expire respects .keep files' '
 | 
			
		||||
	(
 | 
			
		||||
		cd dup &&
 | 
			
		||||
		git pack-objects --revs .git/objects/pack/pack-all <<-EOF &&
 | 
			
		||||
		refs/heads/A
 | 
			
		||||
		EOF
 | 
			
		||||
		git multi-pack-index write &&
 | 
			
		||||
		PACKA=$(ls .git/objects/pack/a-pack*\.pack | sed s/\.pack\$//) &&
 | 
			
		||||
		touch $PACKA.keep &&
 | 
			
		||||
		git multi-pack-index expire &&
 | 
			
		||||
		ls -S .git/objects/pack/a-pack* | grep $PACKA >a-pack-files &&
 | 
			
		||||
		test_line_count = 3 a-pack-files &&
 | 
			
		||||
		test-tool read-midx .git/objects | grep idx >midx-list &&
 | 
			
		||||
		test_line_count = 2 midx-list
 | 
			
		||||
	)
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
test_done
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user