Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 12 Nov 2019 11:05:03 +0100] rev 43597
py3: avoid iterating over a literal bytes in highlight
In Python 3, iterating over a bytes literal yields integers. Since we
use the value in `text.replace()`, this fails on Python 3 with the
following trackback:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgwebdir_mod.py", line 378, in run_wsgi
for r in self._runwsgi(req, res):
File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgweb_mod.py", line 326, in run_wsgi
for r in self._runwsgi(req, res, repo):
File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgweb_mod.py", line 449, in _runwsgi
return getattr(webcommands, cmd)(rctx)
File "/usr/lib/python3/dist-packages/mercurial/hgweb/webcommands.py", line 211, in file
return _filerevision(web, webutil.filectx(web.repo, web.req))
File "/usr/lib/python3/dist-packages/hgext/highlight/__init__.py", line 72, in filerevision_highlight
pygmentize(web, b'fileline', fctx, web.tmpl)
File "/usr/lib/python3/dist-packages/hgext/highlight/__init__.py", line 58, in pygmentize
field, fctx, style, tmpl, guessfilenameonly=filenameonly
File "/usr/lib/python3/dist-packages/hgext/highlight/highlight.py", line 62, in pygmentize
text = text.replace(c, b'')
TypeError: a bytes-like object is required, not 'int'
Yuya Nishihara <yuya@tcha.org> [Mon, 11 Nov 2019 22:10:26 +0900] rev 43596
import-checker: allow 'from typing import ...'
Suppresses the following error in test-check-module-imports.t:
mercurial/encoding.py:24: relative import of stdlib module
Martin von Zweigbergk <martinvonz@google.com> [Tue, 29 Oct 2019 23:33:34 -0700] rev 43595
match: drop support for passing '.' for root dir to visit*() methods
We said we'd drop support for it after 5.1, so it's time to clean it
up now.
Differential Revision: https://phab.mercurial-scm.org/D7249
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 16 Oct 2019 21:31:40 -0700] rev 43594
tests: use time.time() for relative start and stop times
os.times() does not work on Windows. This was resulting in the
test start, stop, and duration times being reported as 0.
This commit swaps in time.time() for wall clock measurements.
This isn't ideal, as time.time() is not monotonic. But Python 2.7
does not have a monotonic timer that works on Windows. So it is
the best we have which is trivially usable. And test times aren't
terribly important, so variances due to clock skew are arguably
acceptable.
Differential Revision: https://phab.mercurial-scm.org/D7126
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 16 Oct 2019 21:25:08 -0700] rev 43593
tests: rename stopped and started variables to reflect times
In preparation for introducing more variables that will have
similar names.
Differential Revision: https://phab.mercurial-scm.org/D7125
Martin von Zweigbergk <martinvonz@google.com> [Wed, 30 Oct 2019 00:00:21 -0700] rev 43592
revset: simplify checkstatus() by using any()
Differential Revision: https://phab.mercurial-scm.org/D7179
Kyle Lippincott <spectral@google.com> [Wed, 06 Nov 2019 18:28:11 -0800] rev 43591
rebase: check for unfinished ops even when inmemory (
issue6214)
When using rebase.experimental.inmemory, we should be able to work well with a
dirty working directory, but we can not reliably work if we're in the middle of
another operation (such as another rebase), as we'll potentially stomp on some
state that the other operation needs.
Differential Revision: https://phab.mercurial-scm.org/D7298
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Oct 2019 23:18:47 -0700] rev 43590
status: move initialization closer together
The default initialization happened long before it needed to happen.
Differential Revision: https://phab.mercurial-scm.org/D7145
Martin von Zweigbergk <martinvonz@google.com> [Sat, 19 Oct 2019 00:15:41 -0700] rev 43589
largefiles: avoid dynamically subclassing context instances
E.g. copies.pathcopies() compares context objects for equality and
basectx.__eq__ compares the type. But since largefiles was dynamically
creating classes, they would all be unequal. That led pathcopies(),
after some changes I made, to not short-circuit to get copy info only
from the dirstate. This patch fixes that short-circuiting (and other
places where context are being compared for equality).
Differential Revision: https://phab.mercurial-scm.org/D7143
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Nov 2019 13:31:40 -0800] rev 43588
relnotes: copy "next" to "5.2" and clear "next"
This is the same thing as we did for 5.1 in
cba59b338976 (relnotes:
copy "next" to "5.1" and clear "next", 2019-08-01).
Differential Revision: https://phab.mercurial-scm.org/D7231
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Nov 2019 10:13:05 -0800] rev 43587
py3: avoid `b'%s' % type(...)` in a ProgrammingError
Differential Revision: https://phab.mercurial-scm.org/D7363
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Oct 2019 22:08:20 -0700] rev 43586
largefiles: delete unused repo.status_nolfiles()
Differential Revision: https://phab.mercurial-scm.org/D7142
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Oct 2019 21:36:19 -0700] rev 43585
largefiles: use context manager for wlock in repo.status() override
Differential Revision: https://phab.mercurial-scm.org/D7141
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Oct 2019 17:52:19 -0700] rev 43584
largefiles: allow "lfstatus" context manager to set value to False
Differential Revision: https://phab.mercurial-scm.org/D7140
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Oct 2019 17:46:37 -0700] rev 43583
largefiles: move lfstatus context manager to lfutil
Differential Revision: https://phab.mercurial-scm.org/D7139
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Nov 2019 14:35:53 -0800] rev 43582
revlog: delete references to deleted nullid sentinel value
We stopped keeping the nullid in the index in
781b2720d2ac (index:
don't include nullid in len(), 2018-07-20). I forgot to update some
comments about it.
Differential Revision: https://phab.mercurial-scm.org/D7366
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Nov 2019 18:15:54 +0100] rev 43581
revlog: remove the, now unused, `revlog._nodepos` attribute
Spotted by Yuya Nishihara.
Denis Laxalde <denis@laxalde.org> [Sat, 09 Nov 2019 10:31:58 +0100] rev 43580
py3: fix sorting of obsolete markers in obsutil (
issue6217)
This is similar to
01e8eefd9434 and others. We move the sortedmarkers()
function from exchange module to obsutil.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Nov 2019 18:12:50 +0100] rev 43579
nodemap: use bytes for the error message
Spotted by Yuya Nishihara.
Denis Laxalde <denis@laxalde.org> [Sat, 09 Nov 2019 16:16:31 +0100] rev 43578
py3: use native strings when forming email headers in patchbomb
Per previous changesets, encoded header's values are native str. We
complete the change in patchbomb extension to have literal header values
native str as well. Then we can also change headers' keys to be str. In
_msgid(), we still need to use encoding.strfromlocal() because usage of
os.environ is not allowed by check-code.
This finally removes the "if pycompat.ispy3:" TODO.
Denis Laxalde <denis@laxalde.org> [Sat, 09 Nov 2019 16:54:33 +0100] rev 43577
mail: convert addr to str early in addrlistencode()
Denis Laxalde <denis@laxalde.org> [Sat, 09 Nov 2019 15:16:52 +0100] rev 43576
mail: let addressencode() / addrlistencode() return native strings
Avoids conversion to "str" on py3.
Denis Laxalde <denis@laxalde.org> [Sat, 09 Nov 2019 12:45:14 +0100] rev 43575
mail: let headencode() return a native string
This is to avoid conversion to/from str on py3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:55 +0100] rev 43574
revlog: deprecate direct `nodemap` access
Now that all in-core user have been updated to the new API, we can deprecated
direct access to nodemap.
Differential Revision: https://phab.mercurial-scm.org/D7362
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:55 +0100] rev 43573
revlog: drop special hack in the `nodemap` property
This code does not seems necessary anymore.
Differential Revision: https://phab.mercurial-scm.org/D7361
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:55 +0100] rev 43572
perf: make `perfrevlogindex` use the new `index.rev` api if available
Differential Revision: https://phab.mercurial-scm.org/D7360
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:54 +0100] rev 43571
perf: make `perfnodemap` use the new `index.get_rev` api if available
Differential Revision: https://phab.mercurial-scm.org/D7358
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:54 +0100] rev 43570
index: use `index.get_rev` in `remotefilelog`
Differential Revision: https://phab.mercurial-scm.org/D7357
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:54 +0100] rev 43569
index: use `index.get_rev` in `histedit.processreplacement`
Differential Revision: https://phab.mercurial-scm.org/D7354
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:54 +0100] rev 43568
index: use `index.get_rev` in `histedit.adjustreplacementsfrommarkers`
Differential Revision: https://phab.mercurial-scm.org/D7353
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:54 +0100] rev 43567
index: use `index.get_rev` in `rebase._computeobsoletenotrebased`
Differential Revision: https://phab.mercurial-scm.org/D7350
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:53 +0100] rev 43566
index: use `index.get_rev` in `rebase.successorrevs`
The code is slightly updated in the process for simplicity.
Differential Revision: https://phab.mercurial-scm.org/D7349
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:52 +0100] rev 43565
index: use `index.get_rev` in `unionrepo.unionrevlog`
Differential Revision: https://phab.mercurial-scm.org/D7338
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:53 +0100] rev 43564
index: use `index.rev` in `bundlerepo.bundlerevlog`
Differential Revision: https://phab.mercurial-scm.org/D7340
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:53 +0100] rev 43563
index: use `index.get_rev` in `exchange._pullapplyphases`
Differential Revision: https://phab.mercurial-scm.org/D7347
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:53 +0100] rev 43562
index: use `index.rev` in `exchange.fallbackheads`
Differential Revision: https://phab.mercurial-scm.org/D7345
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:53 +0100] rev 43561
index: use `index.get_rev` in `revset._mapbynodefunc`
We slightly update the code in the process.
Differential Revision: https://phab.mercurial-scm.org/D7343
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:53 +0100] rev 43560
index: use `index.get_rev` in `discovery._postprocessobsolete`
Differential Revision: https://phab.mercurial-scm.org/D7341
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:52 +0100] rev 43559
index: use `index.get_rev` in `repoview.pinnedrevs`
We simplify the code in the process
Differential Revision: https://phab.mercurial-scm.org/D7337
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:52 +0100] rev 43558
index: use `index.get_rev` in `obsolete._computephasedivergentset`
Differential Revision: https://phab.mercurial-scm.org/D7336
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:52 +0100] rev 43557
index: use `index.get_rev` in `obsutil.getobsoleted`
Differential Revision: https://phab.mercurial-scm.org/D7335
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:52 +0100] rev 43556
index: use `index.get_rev` in `phases.newheads`
Differential Revision: https://phab.mercurial-scm.org/D7332
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:51 +0100] rev 43555
index: use `index.get_rev` in `localrepo.known`
Differential Revision: https://phab.mercurial-scm.org/D7327
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:51 +0100] rev 43554
index: add a `get_rev` method (API)
The new `index.getrev(node)` is to be preferred over using:
`index.nodemap.get(node)`.
This get us closer to be able to remove the `nodemap` attribute of the index.
Differential Revision: https://phab.mercurial-scm.org/D7326
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:51 +0100] rev 43553
index: use `index.rev` in `revlog.rev`
Differential Revision: https://phab.mercurial-scm.org/D7325
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Nov 2019 13:23:51 +0100] rev 43552
index: add a `rev` method (API)
The new `index.rev(node)` is to be preferred over using `node
index.nodemap[node]`.
This get us closer to be able to remove the `nodemap` attribute of the index.
Differential Revision: https://phab.mercurial-scm.org/D7324
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 13:26:55 +0100] rev 43551
perf: make `perfphasesremote` use the new `index.has_node` api
(If available)
Differential Revision: https://phab.mercurial-scm.org/D7359
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 17:08:24 +0100] rev 43550
index: use `index.has_node` in `infinitypush`
Differential Revision: https://phab.mercurial-scm.org/D7356
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 13:26:33 +0100] rev 43549
index: use `index.has_node` in `phabricator.getoldnodedrevmap`
Differential Revision: https://phab.mercurial-scm.org/D7355
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 15:09:09 +0100] rev 43548
index: use `index.has_node` in `histedit.cleanupnode`
Differential Revision: https://phab.mercurial-scm.org/D7352
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 15:08:27 +0100] rev 43547
index: use `index.has_node` in `histedit._finishhistedit
Differential Revision: https://phab.mercurial-scm.org/D7351
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 13:25:25 +0100] rev 43546
index: use `index.has_node` in `exchangev2._pullchangesetdiscovery`
Differential Revision: https://phab.mercurial-scm.org/D7348
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 16:00:47 +0100] rev 43545
index: use `index.has_node` in `exchange._pulldiscoverychangegroup`
Differential Revision: https://phab.mercurial-scm.org/D7346
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 13:36:02 +0100] rev 43544
index: use `index.has_node` in `bookmarks.bmstore`
Differential Revision: https://phab.mercurial-scm.org/D7344
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 11:44:23 +0100] rev 43543
index: use `index.has_node` in `tags.findglobaltags`
Differential Revision: https://phab.mercurial-scm.org/D7342
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 13:24:54 +0100] rev 43542
index: use `index.has_node` in `bundlerepo.bundlerevlog`
Differential Revision: https://phab.mercurial-scm.org/D7339
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 14:20:48 +0100] rev 43541
index: use `index.has_node` in `obsutil.foreground`
Differential Revision: https://phab.mercurial-scm.org/D7334
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 14:19:53 +0100] rev 43540
index: use `index.has_node` in `obsutil.exclusivemarkers`
Differential Revision: https://phab.mercurial-scm.org/D7333
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 14:17:03 +0100] rev 43539
index: use `index.has_node` in `phases.filterunknown`
Differential Revision: https://phab.mercurial-scm.org/D7331
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Nov 2019 14:16:24 +0100] rev 43538
index: use `index.has_node` in `analyzeremotephases`
Differential Revision: https://phab.mercurial-scm.org/D7330