[MERGE] Fix one cause of poor commit performance with thousands of deleted paths
Robert Collins
robertc at robertcollins.net
Wed Oct 24 23:42:21 BST 2007
Commit when there are thousands of deletes paths becomes very slow. Bug
156491 has the details, but in short examining every deleted path is a
bad idea.
This uses a tree of path segments to determine if a path is a child of a
deleted path rather than a set and is_inside_any.
I considered factoring this out to a replacement interface along the
lines of is_inside_any, and I think that is worth doing eventually,
however this functionality is already well tested at the commit layer;
so until there is another user of it it is below my 'refactor itch'
threshold.
There may be other issues with massive-delete scenarios, but if there
aren't, I'm expecting this to be a several hundred percent performance
improvement for the user that reported this behaviour - with lsprof
is_inside_any was 90% of their commit time with no specified files.
-Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bzr-mail-yeRgk8.patch
Type: text/x-patch
Size: 7380 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20071025/b93e4c86/attachment-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20071025/b93e4c86/attachment-0001.pgp
More information about the bazaar
mailing list