45 lines
		
	
	
		
			783 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			45 lines
		
	
	
		
			783 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
#!/bin/sh
 | 
						|
 | 
						|
USAGE='[-n] [--] [<head>...]'
 | 
						|
. git-sh-setup
 | 
						|
 | 
						|
dryrun=
 | 
						|
echo=
 | 
						|
while case "$#" in 0) break ;; esac
 | 
						|
do
 | 
						|
    case "$1" in
 | 
						|
    -n) dryrun=-n echo=echo ;;
 | 
						|
    --) break ;;
 | 
						|
    -*) usage ;;
 | 
						|
    *)  break ;;
 | 
						|
    esac
 | 
						|
    shift;
 | 
						|
done
 | 
						|
 | 
						|
sync
 | 
						|
case "$#" in
 | 
						|
0) git-fsck-objects --full --cache --unreachable ;;
 | 
						|
*) git-fsck-objects --full --cache --unreachable $(git-rev-parse --all) "$@" ;;
 | 
						|
esac |
 | 
						|
 | 
						|
sed -ne '/unreachable /{
 | 
						|
    s/unreachable [^ ][^ ]* //
 | 
						|
    s|\(..\)|\1/|p
 | 
						|
}' | {
 | 
						|
	cd "$GIT_OBJECT_DIRECTORY" || exit
 | 
						|
	xargs $echo rm -f
 | 
						|
	rmdir 2>/dev/null [0-9a-f][0-9a-f]
 | 
						|
}
 | 
						|
 | 
						|
git-prune-packed $dryrun
 | 
						|
 | 
						|
if redundant=$(git-pack-redundant --all 2>/dev/null) && test "" != "$redundant"
 | 
						|
then
 | 
						|
	if test "" = "$dryrun"
 | 
						|
	then
 | 
						|
		echo "$redundant" | xargs rm -f
 | 
						|
	else
 | 
						|
		echo rm -f "$redundant"
 | 
						|
	fi
 | 
						|
fi
 |