Work flow on large repositories
Michael Hope
michael.hope at linaro.org
Wed Jul 28 03:40:56 BST 2010
Hi there. I'm working on the gcc-linaro branch which is stored under
bzr and hosted on Launchpad. This is a fairly big branch as it was
imported from upstream SVN and contains a large amount of history.
Most of the work is day-to-day changes on topic branches. I also want
to run a buildbot style program that continually updates and builds
the latest.
My issue is that the various operations are taking too long. Could
anyone suggest tricks or a different work flow to speed things up?
Some of the operations include:
Creating a mirror branch by doing init-repo, branch lp:gcc-linaro/4.4.
The finding revisions stage takes about 10 minutes at 1kB/s. The
download stage is much faster.
Day-to-day work is done on topic branches. Creating the branch takes
46 s, 250 MB of RAM, and creates a 20 MB .bzr directory. Pushing this
branch to LP for merging involves pushing the full 20 MB, but this is
acceptable.
Doing a bzr pull on the 4.4 mirror directory may more than half an
hour and more than 500 MB of memory.
Doing a bzr checkout takes over 20 minutes and 800 MB of memory on my
fastest machine. On my netbook and ARM board this causes significant
swapping. I've yet to complete a checkout on either.
I'd also like to share the mirror with other local machines to skip
downloading the same 500 MB many times. Running bzr serve and then
checking out causes 100 % CPU usage for more than 10 minutes on the
host.
These numbers were with 2.2b4. 2.2 is significantly better than 2.1.
-- Michael
More information about the bazaar
mailing list