Kyle Lippincott <spectral@google.com> [Wed, 02 Dec 2020 15:38:05 -0800] rev 46017
statprof: fix off-by-one-line error in output
martinvonz claims they thought that this was intentional, but couldn't remember
the reasoning for it. I can't understand why it would be preferable, and I
didn't see anything in the comments in the file about why this would be useful,
so I'm hopefully not breaking anything by "fixing" it.
### Old output
```
| 100.0% 0.01s dispatch.py: run line 43: dispatch.run()
| 100.0% 0.01s dispatch.py: dispatch line 115: status = dispatch(req)
| 100.0% 0.01s dispatch.py: _runcatch line 266: ret = _runcatch(req) or 0
| 100.0% 0.01s dispatch.py: _callcatch line 442: return _callcatch(ui, _runc...
| 100.0% 0.01s scmutil.py: callcatch line 451: return scmutil.callcatch(ui...
| 100.0% 0.01s dispatch.py: _runcatchfunc line 155: return func()
| 100.0% 0.01s dispatch.py: _dispatch line 432: return _dispatch(req)
| 100.0% 0.01s hg.py: repository line 1179: repo = hg.repository(
| 100.0% 0.01s hg.py: _peerorrepo line 221: peer = _peerorrepo(
| 100.0% 0.01s util.py: __getattribute__ line 188: obj = _peerlookup(path).ins...
| 100.0% 0.01s localrepo.py: makelocalrepositoryline 3227: return makelocalrepository(...
| 100.0% 0.01s localrepo.py: __init__ line 683: return cls(
| 100.0% 0.01s util.py: __getattribute__ line 1262: self._extrafilterid = repov...
| 100.0% 0.01s <frozen importlib._bootstrap_external>: exec_moduleline 245: self.__spec__.loader.exec_m...
| 100.0% 0.01s <frozen importlib._bootstrap_external>: get_codeline 779:
| 100.0% 0.01s <frozen importlib._bootstrap_external>: path_statsline 868:
| 100.0% 0.01s <frozen importlib._bootstrap_external>: _path_statline 1012:
```
### New output
```
| 100.0% 0.01s hg: <module> line 43: dispatch.run()
| 100.0% 0.01s dispatch.py: run line 115: status = dispatch(req)
| 100.0% 0.01s dispatch.py: dispatch line 266: ret = _runcatch(req) or 0
| 100.0% 0.01s dispatch.py: _runcatch line 442: return _callcatch(ui, _runc...
| 100.0% 0.01s dispatch.py: _callcatch line 451: return scmutil.callcatch(ui...
| 100.0% 0.01s scmutil.py: callcatch line 155: return func()
| 100.0% 0.01s dispatch.py: _runcatchfunc line 432: return _dispatch(req)
| 100.0% 0.01s dispatch.py: _dispatch line 1179: repo = hg.repository(
| 100.0% 0.01s hg.py: repository line 221: peer = _peerorrepo(
| 100.0% 0.01s hg.py: _peerorrepo line 188: obj = _peerlookup(path).ins...
| 100.0% 0.01s localrepo.py: instance line 3227: return makelocalrepository(...
| 100.0% 0.01s localrepo.py: makelocalrepositoryline 683: return cls(
| 100.0% 0.01s localrepo.py: __init__ line 1262: self._extrafilterid = repov...
| 100.0% 0.01s util.py: __getattribute__ line 245: self.__spec__.loader.exec_m...
| 100.0% 0.01s <frozen importlib._bootstrap_external>: exec_moduleline 779:
| 100.0% 0.01s <frozen importlib._bootstrap_external>: get_codeline 868:
| 100.0% 0.01s <frozen importlib._bootstrap_external>: path_statsline 1012:
| 100.0% 0.01s <frozen importlib._bootstrap_external>: _path_statline 87:
```
Differential Revision: https://phab.mercurial-scm.org/D9510
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 03 Dec 2020 08:09:56 +0100] rev 46016
phab-refresh: do not error out when the stack is empty
Actually, empty stack is easier to get than I expected (and harmless). When a
stack is publish, heptapod will detect the even, empty the stack (triggering CI)
and "forgetting" the branch afterward.
So we stop returning as error in this case.
Differential Revision: https://phab.mercurial-scm.org/D9513
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Dec 2020 20:10:27 +0100] rev 46015
run-tests: allow some slack about 'waiting on lock' message
It is common to run the tests on very loaded machine when concurrent run might
take a bit longer. Such message are usually harmless, but anoying as they break
the tests.
Test that explicitly depends on this value have been adjusted. This make them
more robust anyway.
A fun case was `test-clone-pull-corruption.t` which, without the previous
changeset introducing extra flushing, ended use having a line 31 (`pulling from
../source`) changing order because the warning message was no longer flushing
stdin before using stderr (stderr being invisible in the test).
Differential Revision: https://phab.mercurial-scm.org/D9507
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Dec 2020 23:15:11 +0100] rev 46014
pull: flush stdin after the `pull from` message
That message can end up being flushed after some stderr message in some case,
leading to confusing output.
Differential Revision: https://phab.mercurial-scm.org/D9506
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Dec 2020 20:10:22 +0100] rev 46013
tests: explicitly skip the lock warning in some remotefilelog tests
The output was conditional zed, so lets official skip it instead.
Differential Revision: https://phab.mercurial-scm.org/D9505
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Dec 2020 20:02:35 +0100] rev 46012
tests: use the right python when running dummyssh for narrow
some plateform no longer have a `python` executable.
Differential Revision: https://phab.mercurial-scm.org/D9504
Kyle Lippincott <spectral@google.com> [Wed, 02 Dec 2020 11:05:53 -0800] rev 46011
copies: avoid materializing a full directory map during copy tracing
Materializing a full copy of every directory in a treemanifest repo can be quite
expensive, even with a narrow matcher. For flat manifest repos, this should be
equivalent - it will still materialize (and cache) a dict of all of the dirs
inside of the manifest object, we just don't get a copy of it.
In a repo I have here, this brings the time for a simple rebase from 11.197s to
4.609s.
Differential Revision: https://phab.mercurial-scm.org/D9503
Martin von Zweigbergk <martinvonz@google.com> [Wed, 02 Dec 2020 15:39:01 -0800] rev 46010
rebase: clear merge state when aborting in-memory merge on dirty working copy
Differential Revision: https://phab.mercurial-scm.org/D9509
Martin von Zweigbergk <martinvonz@google.com> [Wed, 02 Dec 2020 15:15:16 -0800] rev 46009
tests: show that in-memory rebase leaves state when working copy is dirty
When in-memory rebase falls back to on-disk rebase, it checks if the
working copy is dirty. If it is, it aborts the rebase. However, it
leaves the rebase state on disk. I broke it in feffeb18d412 (rebase:
teach in-memory rebase to not restart with on-disk rebase on conflict,
2020-09-18).
Differential Revision: https://phab.mercurial-scm.org/D9508
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 27 Nov 2020 18:32:20 +0530] rev 46008
helptext: document share safe functionality in `hg help config -v`
If share safe functionality is enabled, we read `.hg/hgrc' of shared source.
Differential Revision: https://phab.mercurial-scm.org/D9413