Performance of bzr update for lightweight checkout

Ulrich Mueller ulm at gentoo.org
Fri Feb 4 16:57:20 UTC 2011


Hi,

I was wondering about the amount of data that is transferred during a
"bzr update" of a lightweight checkout, with bzr 2.2.2 on GNU/Linux.

In Gentoo, we have a live ebuild for GNU Emacs that will access their
repository at savannah.gnu.org. The initial checkout is done with
"bzr checkout --lightweight" because we don't need any history. Also,
the size of the checkout will be smaller: 114 MB, compared to 364 MB
for a non-lightweight checkout. Subsequently, the checkout will be
updated with "bzr update".

During the last month I have noticed that on several of my updates
huge amounts of data, about 700 MB, were transferred.

The behaviour can be reproduced as follows:

   $ bzr checkout --lightweight --revision date:2011-01-25 \
       bzr://bzr.savannah.gnu.org/emacs/trunk/ emacs-test
   $ cp -a emacs-test emacs-test-20110125   # copy for later diff
   $ cd emacs-test
   $ bzr update --revision date:2011-02-01

(At this point, I had to wait for about 40 minutes, with dstat showing
that my 3 MB/s connection is quite busy ...)

In my ~/.bzr.log there is the following line:
2436.479  Transferred: 704954kB (289.4kB/s r:704688kB w:266kB)

However, the total amount of changes in the repository seems to be
much smaller:

   $ cd ..
   $ diff -Nr emacs-test-20110125 emacs-test | wc
     36003  169698 1429928

Only 1.5 MB, what I would (naively?) expect to be about the amount of
data that should have been transferred. Also an update shouldn't need
to transfer more data than deleting and doing a new checkout?

Am I doing anything wrong?

Ulrich



More information about the bazaar mailing list