Martin von Zweigbergk <martinvonz@google.com> [Wed, 09 Dec 2020 19:40:30 -0800] rev 46117
errors: use detailed exit code 50 for StorageError
This is done as part of
https://www.mercurial-scm.org/wiki/ErrorCategoriesPlan.
Differential Revision: https://phab.mercurial-scm.org/D9601
Martin von Zweigbergk <martinvonz@google.com> [Wed, 09 Dec 2020 20:22:25 -0800] rev 46116
errors: raise InputError if an ambiguous revision id prefix is used
It's long bothered me that we include the "00changelog.i" part in a
message to the user. This fixes that along with the exit code.
Differential Revision: https://phab.mercurial-scm.org/D9600
Martin von Zweigbergk <martinvonz@google.com> [Thu, 10 Dec 2020 01:18:15 -0800] rev 46115
localrepo: delete obsolete comment about `prefix in repo` raising exception
We dropped support for `prefix in repo`, where `prefix` is a hex
prefix, in 8b86acc7aa64 (context: drop support for looking up context
by ambiguous changeid (API), 2018-04-28), after having deprecated it a
while before that. These days you get a `ProgrammingError` instead if
you pass in a short nodeid.
Differential Revision: https://phab.mercurial-scm.org/D9599
Joerg Sonnenberger <joerg@bec.de> [Tue, 01 Dec 2020 21:54:46 +0100] rev 46114
node: import symbols explicitly
There is no point in lazy importing mercurial.node, it is used all over
the place anyway. So consistently import the used symbols directly.
Fix one file using symbols indirectly via mercurial.revlog.
Differential Revision: https://phab.mercurial-scm.org/D9480
Martin von Zweigbergk <martinvonz@google.com> [Sun, 13 Dec 2020 18:29:22 -0800] rev 46113
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 11 Dec 2020 15:25:11 +0100] rev 46112
debugdiscovery: fix swapped heads and roots
Patch provided without comment…
Differential Revision: https://phab.mercurial-scm.org/D9566
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 11 Dec 2020 12:51:09 +0100] rev 46111
debugdiscovery: display the number of roundtrip used
This is a good metric of the complexity of a discovery process.
Differential Revision: https://phab.mercurial-scm.org/D9565
Kyle Lippincott <spectral@google.com> [Fri, 11 Dec 2020 13:39:56 -0800] rev 46110
copies: make calculating lazy for dir move detection's "addedfiles"
The information calculated here was only needed if (a) --debug was specified, or
(b) a directory move was plausibly detected. With tree manifests (especially in
my pathological repo and with our custom setup), pre-calculating the `u1` and
`u2` can be quite slow, and it's not even necessary in many cases. Let's delay
calculating it until we know it's actually necessary. This should have no
observable differences in output.
### Performance
I ran a rebase command in my pathological repo, rebasing two nodes across
several public phase commits, but where no directory copies exist in any of the
paths I'm tracking.
#### Before
```
Time (mean ± σ): 3.711 s ± 0.061 s [User: 0.3 ms, System: 1.5 ms]
Range (min … max): 3.640 s … 3.827 s 10 runs
```
#### After
```
Time (mean ± σ): 868.3 ms ± 10.1 ms [User: 0.5 ms, System: 1.2 ms]
Range (min … max): 856.6 ms … 883.6 ms 10 runs
```
Differential Revision: https://phab.mercurial-scm.org/D9567