Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Mar 2019 17:15:15 +0100] rev 41893
contrib: move the `discovery-helper.sh` script in`perf-utils` directory
The script appeared before the directory. However the directory exists for this
kind of script. We move it there.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 09 Mar 2019 12:55:24 -0500] rev 41892
tests: stabilize test-split.t for Windows
It looks like there will be additional problems beyond this trivial fix, but
this should make the bot green again.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 07 Mar 2019 22:14:22 -0500] rev 41891
tests: stabilize test-share.t on Windows
PYTHON was not getting mangled for MSYS style paths, and remote was spitting out
remote: 'C' is not recognized as an internal or external command,
remote: operable program or batch file.
(once -q was removed). Additionally, this should fix a failure with py3 because
of spaces in the path.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 03 Mar 2019 19:46:59 +0530] rev 41890
split: add tests which demonstrate the
issue5864
Differential Revision: https://phab.mercurial-scm.org/D6057
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Mar 2019 01:28:24 +0100] rev 41889
discovery: clarify why the caching of children is valid
Yuya Nishihara pointed out that the code looks wrong without this clarification.
(And, unsurprisingly, Yuya is right)
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Mar 2019 15:43:52 -0800] rev 41888
tests: clarify test setup test in test-uncommit.t
I assume the "hg uncommit b" is there to prove that the working copy
is dirty before we try "hg uncommit --allow-dirty-working-copy b". It
seems clearer to put that check just before we run the actual test.
Differential Revision: https://phab.mercurial-scm.org/D6078
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Mar 2019 15:35:40 -0800] rev 41887
tests: fix a stale reference to experimental.uncommitondirtywdir
These tests no longer test the config option, they test the command
line flag.
Differential Revision: https://phab.mercurial-scm.org/D6077
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Feb 2019 01:49:10 +0100] rev 41886
discovery: explicitly use `undecided` for the children mapping
Recent performance achievements makes the assumption that the `undecided` set
is used for sampling. That assumption is always true in practice. We stop
pretending that taking anything else would make sense and we directly use the
`undecided` set from the object. This provides a more honest API.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Feb 2019 01:48:20 +0100] rev 41885
discovery: cache the children mapping used during each discovery
During discovery, the `undecided` set keep shrinking. Therefore, the map
computed for an iteration N will be valid for iteration N+1. Instead of
computing the same data over and over we cache it the first time.
Our private pathological case speed up from about 7.5 seconds to about 6.3
seconds.
(starting from over 70s at the start of the full series)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Feb 2019 01:15:45 +0100] rev 41884
discovery: move children computation in its own method
This clarifies the main logic and starts to pave the way to some caching.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Mar 2019 15:39:54 +0100] rev 41883
discovery: simplify the building of the children mapping
Since we only care about the revisions inside the set we are sampling, we can
use simpler code (and probably sightly faster).
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Mar 2019 15:52:14 +0100] rev 41882
discovery: simply walk the undecided revs when building the children mapping
The sampling only care about revisions in the undecided set, so building children
relationship within this set is sufficient.
The set of undecided changesets can be much smaller than the full span from its
smallest item to the tip of the repository. This restriction can significantly
speed up operations in some cases.
For example, on our private pathological case, this speeds things up from about
53 seconds to about 7.5 seconds.