#!/bin/bash#set -x# Shows you the largest objects in your repo's pack file.## @see https://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/# @author Antony Stubbs# set the internal field spereator to line break, so that we can iterate easily over the verify-pack outputIFS=$'\n';# list all objects including their size, sort by size, take top 10objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head -n 20`echo"All sizes are in kB's. The pack column is the size of the object, compressed, inside the pack file."output="size,pack,SHA,location"for y in $objectsdo# extract the size in bytessize=$((`echo$y| cut -f 5 -d ' '`/1024))# extract the compressed size in bytescompressedSize=$((`echo$y| cut -f 6 -d ' '`/1024))# extract the SHAsha=`echo$y| cut -f 1 -d ' '`# find the objects location in the repository treeother=`git rev-list --all --objects | grep $sha`#lineBreak=`echo -e "\n"`output="${output}\n${size},${compressedSize},${other}"doneecho -e $output| column -t -s ', '
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.