[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