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 slow debhelper debdeps
$ . "$TESTDIR/helpers-testrepo.sh"
$ testrepohgenv
Ensure debuild doesn't run the testsuite, as that could get silly.
$ DEB_BUILD_OPTIONS=nocheck
$ export DEB_BUILD_OPTIONS
$ OUTPUTDIR=`pwd`
$ export OUTPUTDIR
$ cd "$TESTDIR"/..
$ make deb > $OUTPUTDIR/build.log 2>&1
$ cd $OUTPUTDIR
$ ls *.deb | grep -v 'dbg'
mercurial_*.deb (glob)
should have .so and .py
$ dpkg --contents mercurial_*.deb | grep -E '(localrepo|parsers)'
* ./usr/lib/python3/dist-packages/mercurial/cext/parsers*.so (glob)
* ./usr/lib/python3/dist-packages/mercurial/localrepo.py (glob)
* ./usr/lib/python3/dist-packages/mercurial/pure/parsers.py (glob)
should have zsh completions
$ dpkg --contents mercurial_*.deb | grep -E 'zsh.*[^/]$'
* ./usr/share/zsh/vendor-completions/_hg (glob)
should have chg
$ dpkg --contents mercurial_*.deb | grep -E 'chg$'
* ./usr/bin/chg (glob)
chg should come with a man page
$ dpkg --contents mercurial_*.deb | grep -E 'man.*chg'
* ./usr/share/man/man1/chg.1.gz (glob)