[MERGE] Faster local branching, checkout

Aaron Bentley aaron at aaronbentley.com
Fri Jun 6 20:13:39 BST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

With Ian's encouragement, I've hacked up a branch that implements his
performance improvements, but does it in a safer and more general way.

Ian's key observation is: generating an inventory delta is a significant
portion of our build_tree time, and is basically redundant.  Also, chmod
is expensive.

While I believe that we can improve on this in the general case, Ian is
right that we cannot expect to easily attain the same performance we get
from simply reusing our existing inventory entries.

The performance I get from a Mozilla tree is basically the same as ian's
patch, because the changes have similar results:

Mine:
real	2m44.432s
user	0m47.055s
sys	0m22.161s

Ian's:
real	2m44.512s
user	0m43.627s
sys	0m21.589s

Bzr.dev:
real	3m2.334s
user	1m1.556s
sys	0m24.210s

Key differences:
- - When conflicts are encountered, precomputed deltas are not used
- - A single, parameterizable code path is used, instead of two code paths
- - Instead of toggling existing file handling, my version makes existing
  file handling scale with the number of existing files.
- - Naming doesn't assume that precomputed deltas can only be used when
  building trees.
- - I did not speed up iter_references.  That can come as a separate
  patch.

I also restored a cleanup whose lack was causing test kipple.

Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFISYxj0F+nu1YWqI0RAnmyAJ9K5P/sxmOhVG/AvCsuAO9SnGXwGACffoR1
fdikOWR+t5ndRN4i95CSmjM=
=5tSl
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fast-checkout2.patch
Type: text/x-diff
Size: 25587 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080606/ac545152/attachment-0001.bin 


More information about the bazaar mailing list