Crushed by a giant packfile
Frits Jalvingh
jal at etc.to
Thu Nov 26 11:26:14 GMT 2009
If you need to find out which revision causes the giant pack you can try to do
a "binary search" to find our the revision that is causing the file to grow
this big. You can do that as follows:
1. Look at the current revision number of the branch. Say it's 500.
2. Create a work directory that is NOT a shared repository.
3. Branch a new copy of the problem repo /on revision 250/:
bzr branch -r 250 [bad-repo-path] work
4. Check how big it's pack files are. If the pack file is already big then
delete the work dir (including the just created repo), go back to step 2 and
use 125 as the revno.
5. If the pack files are small go into the branch and pull new revisions in it
repeatedly, i.e.:
bzr pull -r 300
check repo size
bzr pull -r 400
check repo size
By doing this repeatedly you can quite quickly zoom in to the revision that is
causing the problem. It's a better way than looking to a load of log because
using this method you are certain which revision causes the problem. It also
sidesteps some bugs in bzr log: it does not always show you all the files
that were changed in a revision(!!!!!) - which has still not been fixed since
1.14.
If you cannot find anything wrong with your revisions you can also try
something else: see if there are problems in your commits. You do this as
follows:
1. Find a text file in your repo that you are /certain/ is changed very
little.
2. Do bzr log -v [that file]
This should show only very few commits. Look if there are commits changing
this file that you did not expect (say commit 236) and check them:
bzr log -r 236 -v -n0
(do NOT add the file again)
If all's well this log should also show the file as changed. If it does not
you have hit a bazaar bug whilecommiting somewhere, and the log bug is
preventing you from getting tho know that.
Good luck,
Frits
More information about the bazaar
mailing list