Gregory Szorc <gregory.szorc@gmail.com> [Thu, 12 Nov 2015 13:16:04 -0800] rev 26945
tags: create new sortdict for performance reasons
sortdict internally maintains a list of keys in insertion order. When a
key is replaced via __setitem__, we .remove() from this list. This
involves a linear scan and array adjustment. This is an expensive
operation.
The tags reading code was calling into sortdict.__setitem__ for each tag
in a read .hgtags revision. For repositories with thousands of tags or
thousands of .hgtags revisions, the overhead from list.remove()
noticeable.
This patch creates a new sortdict() so __setitem__ calls don't incur a
list.remove.
This doesn't appear to have any performance impact on my Firefox
repository. But that's only because tags reading doesn't show up in
profiles to begin with. I'm still waiting to hear from a user with over
10,000 tags and hundreds of heads on the impact of this patch.
Christian Delahousse <cdelahousse@fb.com> [Tue, 10 Nov 2015 15:08:56 -0800] rev 26944
largefiles: specify where .orig files are kept
This patch let's the user specify where .orig files are kept using the
cmdutil.origpath function
Christian Delahousse <cdelahousse@fb.com> [Tue, 10 Nov 2015 14:52:54 -0800] rev 26943
mq: let the user choose where .orig files are kept
This patch uses cmdutil.origpath to let the user decide where .orig files are
kept when backup files are created.
Christian Delahousse <cdelahousse@fb.com> [Tue, 10 Nov 2015 14:41:14 -0800] rev 26942
shelve: choose where .orig file locations are kept
This patch uses cmdutil.origpath to let the user set the location of the orig
files.