##// END OF EJS Templates
phases: avoid a potentially costly dictionary interation in some case...
phases: avoid a potentially costly dictionary interation in some case If we retract for the draft phase, there is not non-public item to be retracted and we can skip this part. This part is was apparently super costly thanks to Python. On mozilla-try-2019-02-18, a perf::unbundle call with a 10 000 changesets bundle gives give use the following timing. e57d4b868a3e: 4.6 seconds ac1c75188440: 102.5 seconds this-changeset: 30.0 seconds So we recovered about ⅔ of the regression, the next changeset will give us the rest back.

File last commit:

r49730:6000f5b2 default
r52409:e0f92bd9 stable
Show More
error.py
14 lines | 374 B | text/x-python | PythonLexer
# Copyright 2016-present Facebook. All Rights Reserved.
#
# error: errors used in fastannotate
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
class CorruptedFileError(Exception):
pass
class CannotReuseError(Exception):
"""cannot reuse or update the cache incrementally"""