43 lines
		
	
	
		
			1007 B
		
	
	
	
		
			Bash
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1007 B
		
	
	
	
		
			Bash
		
	
	
| # Library of git-bundle related functions.
 | |
| 
 | |
| # Display the pack data contained in the bundle file, bypassing the
 | |
| # header that contains the signature, prerequisites and references.
 | |
| convert_bundle_to_pack () {
 | |
| 	while read x && test -n "$x"
 | |
| 	do
 | |
| 		:;
 | |
| 	done
 | |
| 	cat
 | |
| }
 | |
| 
 | |
| # Check count of objects in a bundle file.
 | |
| # We can use "--thin" opiton to check thin pack, which must be fixed by
 | |
| # command `git-index-pack --fix-thin --stdin`.
 | |
| test_bundle_object_count () {
 | |
| 	thin=
 | |
| 	if test "$1" = "--thin"
 | |
| 	then
 | |
| 		thin=t
 | |
| 		shift
 | |
| 	fi
 | |
| 	if test $# -ne 2
 | |
| 	then
 | |
| 		echo >&2 "args should be: <bundle> <count>"
 | |
| 		return 1
 | |
| 	fi
 | |
| 	bundle=$1
 | |
| 	pack=$bundle.pack
 | |
| 	convert_bundle_to_pack <"$bundle" >"$pack" &&
 | |
| 	if test -n "$thin"
 | |
| 	then
 | |
| 		mv "$pack" "$bundle.thin.pack" &&
 | |
| 		git index-pack --stdin --fix-thin "$pack" <"$bundle.thin.pack"
 | |
| 	else
 | |
| 		git index-pack "$pack"
 | |
| 	fi || return 1
 | |
| 	count=$(git show-index <"${pack%pack}idx" | wc -l) &&
 | |
| 	test $2 = $count && return 0
 | |
| 	echo >&2 "error: object count for $bundle is $count, not $2"
 | |
| 	return 1
 | |
| }
 |