Crushed by a giant packfile

Chris McCormick chris at mccormick.cx
Thu Nov 26 04:00:27 GMT 2009


Hi,

Thanks for the tips, Alex and Rob.

On Wed, Nov 25, 2009 at 10:17:20PM +0200, Alexander Belchenko wrote:
> Chris McCormick пишет:
> > I've RTFM and done a bit of an internet search, but I can't find anything which
> > will help me with my problem, which i this: our otherwise small repository of
> > web code has one giant 250mb pack file which means a fresh checkout takes ages
> > on our slow connection. I am wondering if there is some way to find out which
> > change introduced this huge pack file, or compress it, or some other strategy
> > to make our repository more manageable which doesn't involve us starting our
> > revision history from scratch? Sorry if this question is cheeky.
> 
> Try to clone your trunk outside you shared repository and check the size of packs.
> If 250MB will gone after the cloning -- this is good sign.

I guess clone == bzr branch. It looks like the 250MB pack is indeed part of a
commit somewhere along the line:

$ bzr clone myrepo myrepo.clone
Branched 1206 revision(s).                                                                         
~$ cd myrepo.clone/
~/myrepo.clone$ du -hs .
256M	.
~/myrepo.clone$ mv .bzr ../old.bzr
~/myrepo.clone$ du -hs .
10M	.
~/myrepo.clone$ mv ../old.bzr/ .bzr
~/myrepo.clone$ bzr status
~/myrepo.clone$ find ./ -size +10M
.//.bzr/repository/packs/710a9a63aca37972771191de139692e9.pack

> Otherwise you need inspect the history, found the big file (I suppose: added by mistake and then
> deleted), and rewrite the history with fast-import-filter or rebase.

If you could point me to a tutorial or some documentation on how to do this, I
would really appreciate it.

Best regards,

Chris.

-------------------
http://mccormick.cx



More information about the bazaar mailing list