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.
#require test-repo pylint
Run pylint for known rules we care about.
-----------------------------------------
There should be no recorded failures; fix the codebase before introducing a
new check.
Current checks:
- W0102: no mutable default argument
- C0321: only one statement on a single line
$ touch $TESTTMP/fakerc
$ pylint --rcfile=$TESTTMP/fakerc --disable=all \
> --enable=W0102,C0321 \
> --reports=no \
> --ignore=thirdparty \
> mercurial hgdemandimport hgext hgext3rd | sed 's/\r$//'
Using config file *fakerc (glob) (?)
(?)
------------------------------------* (glob) (?)
Your code has been rated at 10.00/10* (glob) (?)
(?)