phases: update the phase set as we go during retract boundary
Apparently iterating over the `changed_revs` dictionary is very expensive.
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
prev-changeset: 30.0 seconds
this-changeset: 4.6 seconds
So, the performance regression is gone.
Once again: thanks to marvelous Python!
#require test-repo
Enable obsolescence to avoid the warning issue when obsmarker are found
$ . "$TESTDIR/helpers-testrepo.sh"
Go back in the hg repo
$ cd $TESTDIR/..
$ REVSET='not public() and ::. and not desc("# no-check-commit")'
$ mkdir "$TESTTMP/p"
$ REVS=`testrepohg log -r "$REVSET" -T.`
$ if [ -n "$REVS" ] ; then
> testrepohg export --git -o "$TESTTMP/p/%n-%h" -r "$REVSET"
> for f in `ls "$TESTTMP/p"`; do
> contrib/check-commit < "$TESTTMP/p/$f" > "$TESTTMP/check-commit.out"
> if [ $? -ne 0 ]; then
> node="${f##*-}"
> echo "Revision $node does not comply with rules"
> echo '------------------------------------------------------'
> cat ${TESTTMP}/check-commit.out
> echo
> fi
> done
> fi