Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Jul 2022 23:10:55 +0200] rev 49445
perf-bundle: accept --rev arguments
This is fairly standard nowaday.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Jul 2022 22:50:59 +0200] rev 49444
perf-bundle: add a new command to benchmark bundle creation time
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jul 2022 01:34:18 +0200] rev 49443
bundle: introduce a --exact option
I have been wanting this options for a long time.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Jul 2022 23:59:34 +0200] rev 49442
bundlespec: add documentation about existing option
We have some documentation, lets make it complete.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jul 2022 19:18:00 -0400] rev 49441
setup: use the full executable manifest from `python.exe`
The manifest embedded by the build process (before the string here is added)
already accounts for the `<requestedExecutionLevel level="asInvoker" ...>`
setting. (Note that the PyOxidizer build is missing this, so it will likely
trigger the UAC escalation prompt on each run.) However, using `mt.exe` to
merge the fragment with what is already in the manifest seems to strip all
whitespace, making it unreadable.
Since Mercurial can be run via `python.exe`, it makes sense that we would have
the same manifest settings (like the supported OS list), though I'm unaware of
any functionality this enables. It also has the nice effect of making the
content readable from a resource editor. The manifest comes from python 3.9.12.
Note that this seems to strip the `<?xml ... ?>` declaration when viewed with
ResourceHacker 5.1.7, but this was also the state of things with the previous
commit, and `mt.exe "-inputresource:hg.exe;#1" -out:extracted` does contain the
declaration and the BOM in both cases. No idea why this differs from other
executables.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jul 2022 17:19:56 -0400] rev 49440
setup: unconditionally enable the `long-paths-support` option on Windows
I don't see anything talking about why this was experimental in the first place,
but maybe it was concern about the level of python2 support for it. But now,
both `python.exe` and the PyOxidizer build of `hg.exe` have a manifest that
enables it, so leaving it off would mean some Mercurial installations could
operate on a repo with long paths, and others couldn't. Note that only the wide
character functions (XxxW) will have the length restriction lifted.
Sadly, distutils applies `/MANIFEST:EMBED` to the linker in a way that can't
easily be turned off, so we can't use `/MANIFESTFILE` with `extra_preargs` on
`link_executable`. Fortunately, the compiler object provides a path to the
`mt.exe` it found during initialization, because the previous incarnation seems
to have assumed it is being run within an activated Visual Studio environment.
That causes MSYS builds to fail, and probably would have broke the CI
environment.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jul 2022 17:00:59 -0400] rev 49439
setup: stop shadowing the builtin `dir` symbol
I hit this when debugging what's available on the compiler.
derekbrowncmu@gmail.com [Mon, 18 Jul 2022 03:29:53 -0400] rev 49438
subrepo: avoid opening console window for non-native subrepos on Windows
Prevent annoying command prompt windows popping up when using TortoiseHG with
Git and SVN subrepos by passing creationflags=subprocess.CREATE_NO_WINDOW to
subprocess.Popen.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 13 Jul 2022 17:13:33 -0400] rev 49437
ci: bump pytype to 2022.03.29
This is as far as we can go without running into issues with the vendored `attr`
package. I tried updating that to the latest, and not only did it not fix the
issue, but test-util.py failed due to some poking at `attr` internals that
apparently is no longer valid.
The `libcst` package is now pinned to what I have locally because trying to
install the latest (0.4.7) complains that it can't find the Rust compiler. We
should probably use a requirements file instead (and/or figure out why it can't
find the Rust compiler), but I don't feel like dealing with another side quest.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 13 Jul 2022 12:47:40 -0400] rev 49436
typing: suppress a few attribute errors in url.py
These are newly detected by pytype 2022.03.21. Not sure what is going on here-
`realhostport` and `headers` are added outside of the constructor, so that makes
sense. But PyCharm also thinks the private methods don't exist, though when
clicking through the class hierarchy, it shows in the py3.9 source code.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 13 Jul 2022 11:30:13 -0400] rev 49435
typing: suppress a few pyi-errors with more recent pytype
Not sure what's going on here, but these were flagged with pytype 2022.03.21.
We can't update to something much more recent, because newer versions complain
about various `attr` uses.
Ondrej Pohorelsky <opohorel@redhat.com> [Wed, 13 Jul 2022 18:27:40 +0200] rev 49434
sslutil: another use proper attribute to select python 3.7+
The previous attribute was python 3.6+, but guarded a python 3.7+ block
Using the correct attribute avoids:
+ File "/tmp/hgtests.bc0_uk2d/install/lib/python/mercurial/sslutil.py", line 577, in wrapserversocket
+ sslcontext.minimum_version = ssl.TLSVersion.TLSv1_1
+ AttributeError: module 'ssl' has no attribute 'TLSVersion'
Mathias De Mare <mathias.de_mare@nokia.com> [Tue, 12 Jul 2022 15:59:53 +0200] rev 49433
sslutil: use proper attribute to select python 3.7+
The previous attribute was python 3.6+, but guarded a python 3.7+ block.
Using the correct attribute avoids:
File "/usr/lib64/python3.6/site-packages/mercurial/sslutil.py", line 334, in wrapsocket
sslcontext.minimum_version = ssl.TLSVersion.TLSv1_1
AttributeError: module 'ssl' has no attribute 'TLSVersion'
Raphaël Gomès <rgomes@octobus.net> [Mon, 11 Jul 2022 09:54:40 +0200] rev 49432
branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Thu, 16 Jun 2022 15:20:48 +0200] rev 49431
branching: merge stable into default
Matt Harbison <matt_harbison@yahoo.com> [Thu, 20 Oct 2022 12:05:17 -0400] rev 49430
lfs: fix interpolation of int and %s in an exception case
Seen in the wild in a server log when MS antivirus was quarantining a file on
the client side.
Anton Shestakov <av6@dwimlabs.net> [Wed, 19 Oct 2022 17:00:03 +0400] rev 49429
tests: catch "Can't assign requested address" in test-https.t (issue6726)
Anton Shestakov <av6@dwimlabs.net> [Wed, 19 Oct 2022 16:55:46 +0400] rev 49428
tests: add another variation of EADDRNOTAVAIL message (e.g. from NetBSD)
Matt Harbison <matt_harbison@yahoo.com> [Tue, 18 Oct 2022 19:49:31 -0400] rev 49427
configitems: change the `verify.skipflags` default value to avoid a py3 crash
The revlog and LFS modules use various `&` and `&=` operations with this value,
which no longer treats `None` as 0. Since nothing cares if it was actually set
in the config or not, just default to 0 for simplicity.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 10 Oct 2022 11:28:19 -0400] rev 49426
windows: gracefully handle when the username cannot be determined
This assumes implementation details, but I don't see any other way than to check
the environment variables ourselves (which would miss out on any future
enhancements that Python may make). This was originally reported as
https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5835.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Oct 2022 14:33:31 +0200] rev 49425
shelve: do not add the dirstate backup to the transaction
Otherwise the transaction will properly clean up its mess on abort… deleting the
backup in the process.
This break with dirstate-v2 that has more file than just the dirstate. The
dirstate itself is full of various exception and is "fine" when using
dirstate-v1.
Raphaël Gomès <rgomes@octobus.net> [Tue, 04 Oct 2022 10:24:56 +0200] rev 49424
Added signature for changeset dbdee8ac3e3f
Raphaël Gomès <rgomes@octobus.net> [Tue, 04 Oct 2022 10:24:50 +0200] rev 49423
Added tag 6.2.3 for changeset dbdee8ac3e3f
Raphaël Gomès <rgomes@octobus.net> [Mon, 03 Oct 2022 10:00:00 +0200] rev 49422
heptapod-ci: use shell script in pytype step