git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[script] find largest pack objects

From
Antony Stubbs <antony.stubbs@gmail.com>
Date
Jul 10, 2009, 01:16 UTC
Message-ID
<A67AA762-487D-4CFB-B555-718C88C5787D@gmail.com>

Blog post about git pruning history and finding large objects in your repo: http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/

This is a script I put together after migrating the Spring Modules project from CVS, using git-cvsimport (which I also had to patch, to get to work on OS X / MacPorts). I wrote it because I wanted to get rid of all the large jar files, and documentation etc, that had been put into source control. However, if _large files_ are deleted in the latest revision, then they can be hard to track down.

#!/bin/bash #set -x

# Shows you the largest objects in your repo's pack file. # Written for osx. # # @see http://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 output IFS=$'\n';

# list all objects including their size, sort by size, take top 10 objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head`

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 $objects
do
	# extract the size in bytes
	size=$((`echo $y | cut -f 5 -d ' '`/1024))
	# extract the compressed size in bytes
	compressedSize=$((`echo $y | cut -f 6 -d ' '`/1024))
	# extract the SHA
	sha=`echo $y | cut -f 1 -d ' '`
	# find the objects location in the repository tree
	other=`git rev-list --all --objects | grep $sha`
	#lineBreak=`echo -e "\n"`
	output="${output}\n${size},${compressedSize},${other}"
done
echo -e $output | column -t -s ', '
More info on the blog post: http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/

Regards, Antony Stubbs

Talk to me about Wicket, Spring, Maven consulting, small scale outsourcing to Australasia and India and Open Source development!

Check out the Spring Modules fork at http://wiki.github.com/astubbs/spring-modules 
  ! We've just done the first release of the project in over a year!
Website: http://sharca.com
Blog: http://stubbisms.wordpress.com
Linked In: http://www.linkedin.com/in/antonystubbs
Podcast: http://www.illegalargument.com
Next: Nicolas Pitre
Message 1 of 4 in “[script] find largest pack objects”
  1. Antony StubbsJul 10, 2009
  2. Nicolas PitreJul 10, 2009
  3. Antony StubbsAug 31, 2009
  4. Björn SteinbrinkJul 10, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.