Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2023 16:03:18 +0200] rev 50938
perf: introduce more cache invalidation option in perf::tags
This will help us to assert the performance of different versions in more
diverse situations.
We introduce helper function in the tags module in case invalidating such cache
becomes different in the future.
Manuel Jacob <me@manueljacob.de> [Fri, 08 Sep 2023 15:33:03 +0200] rev 50937
hgweb: pass strings in WSGI environment correctly from wsgicgi
According to PEP 3333, the strings in the WSGI environment must be translatable
to bytes using the ISO-8859-1 codec.
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:12:27 +0200] rev 50936
branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:11:12 +0200] rev 50935
Added signature for changeset
5a8b54201039
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:11:10 +0200] rev 50934
Added tag 6.5.2 for changeset
5a8b54201039
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:10:44 +0200] rev 50933
relnotes: add 6.5.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:24:12 +0200] rev 50932
run-tests: detect HGWITHRUSTEXT value
Without this, some manual check in tests/test-dirstate.t could get confused by
the lack of `rust` in module policy and break the test.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 30 Aug 2023 11:31:05 +0100] rev 50931
tests: avoid test environment affecting setup.py
In particular [RHG_FALLBACK_EXECUTABLE] is being set prematurely,
before rhg is built, but probably the rest of the env changes don't help,
either.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 04 Sep 2023 13:33:32 +0100] rev 50930
setup: make the error "Unable to find a working hg binary" more informative
The error message now shows the attempted hg commands and their stderr, to
make it easier to investigate why things are not working.
Here's an example output
/!\
/!\ Unable to find a working hg binary
/!\ Version cannot be extracted from the repository
/!\ Re-run the setup once a first version is built
/!\ Attempts:
/!\ attempt #0:
/!\ cmd: ['hg-missing', 'log', '-r.', '-Ttest']
/!\ exception: [Errno 2] No such file or directory: 'hg-missing': 'hg-missing'
/!\ attempt #1:
/!\ cmd: ['/usr/bin/python3', 'hg', 'log', '-r.', '-Ttest']
/!\ return code: 255
/!\ std output:
/!\ std error:
*** failed to import extension "topic": No module named 'topic'
*** failed to import extension "evolve": No module named 'evolve'
abort: accessing `dirstate-v2` repository without associated fast implementation.
(check `hg help config.format.use-dirstate-v2` for details)
/!\
/!\ Could not determine the Mercurial version
/!\ You need to build a local version first
/!\ Run `make local` and try again
/!\
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 00:09:55 +0200] rev 50929
pycompat: drop usage of hasattr/getattr/setattr/delatt proxy
The function remains to ease extensions transition, but we no longer use them in
core.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 23:56:15 +0200] rev 50928
safehasattr: drop usage in favor of hasattr
The two functions should now be equivalent at least in their usage in core.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Dec 2022 15:33:19 +0100] rev 50927
check-code: drop the `safehasattr` rule
Since we no longer supports Python 2 we no longer needs to use a custom function
to compensate the short comings of the global `hasattr` function in it.
We cannot use the Python 3 `hasattr` function instead.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 16:36:13 +0200] rev 50926
url: ignore some future pytype error
As soon as we start using the builtins `hasattr` function, pytype will start
getting confused about which types are available or not. So we ignore this error
beforehand.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 16:35:05 +0200] rev 50925
url: move the _generic_proxytunnel in the `has_https` block
It is only used when https exists. If you stay out of the block, pytype
complains that the type of its argument are not declared.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Dec 2022 15:57:42 +0100] rev 50924
pycompat: deprecate using bytes
Python2 has been dropped for a while, so lets comply to the signature of the
global function.
This open the way to drop the use of `pycompat.getattr` and company, and,
especially, the associated `util.safehasattr`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 02:41:33 +0200] rev 50923
dynamic-import: use sysstr for importing extension and others
This logic is used by extensions, and python hooks and merge-tools. All this
logic eventually deals with native string (unicode in Python 3). This patch
makes it handle `str` directly instead of relying on some pycompat low lever
layer to do the conversion at the last minutes.
We adjust the Python version filtering of a test as the output seems to be present with Python 3.7 too.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:54:48 +0200] rev 50922
extension: check the command attributes using `sysstr`
Since we are checking attributes, lets use the native representation instead of
bytes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:47:07 +0200] rev 50921
extension: access special module members using sysstr
These extensions variables and mapping are module attributes so they should be
dealt with unicode `str` in Python 3. We move the part that deal with reading
theses variable and checking their validity to use unicode `str` string.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 11:50:01 +0200] rev 50920
sshpeer: convert command name to sysstr before accessing method
Method name are `str` so we should pass them as `str`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 01:23:30 +0200] rev 50919
localrepo: purge filecache attribute using there unicode name
This could be better, but that's a good step.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:21:57 +0200] rev 50918
fastannotate: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:21:04 +0200] rev 50917
fastannotate: use sysstr to deal with some attributes
We are now Python3 only and attribute are always unicode string. So no needs to
managed them using bytes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 12:09:54 +0200] rev 50916
hgweb: use sysstr to set attribute on diff option
Attribute identifier should be `str` not `bytes`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 11:57:38 +0200] rev 50915
hgweb: use sysstr to get attribute on diff option
Attribute identifier should be `str` not `bytes`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 01:19:49 +0200] rev 50914
diff-option: move attributes handling to sysstr
Attributes are `str` and should be handled as such.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 12:11:11 +0200] rev 50913
compression: use sysstr to specify attribute to fetch for priority
These are attributes so they should be `str`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:45:10 +0200] rev 50912
smartset: set attribute using sysstr instead of bytes
We do not needs bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 11:53:13 +0200] rev 50911
cachedlocalrepo: use sysstr for attribute name of "file of interest"
The first item is an attribute name, the second one is a filename. So the first one can (and should) be a `str`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:01:10 +0200] rev 50910
terse-status: use `sysstr` to specify attributes to set
We use unicode string to specify attribute and we add a explicit char for the
other usage.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:50:28 +0200] rev 50909
path-suboption: deprecated specifying the attributes as bytes
The known suboptions have been updated, so we can deprecated passing bytes in case
some extensions use them.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:49:52 +0200] rev 50908
path-suboption: use str for "_pushloc" suboptions
That second argument refer to an attribute and do not needs to be bytes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:49:16 +0200] rev 50907
path-suboption: use str for "pushrev" suboptions
That second argument refer to an attribute and do not needs to be bytes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:48:30 +0200] rev 50906
path-suboption: use str for "bookmarks_mode" suboptions
That second argument refer to an attribute and do not needs to be bytes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:47:48 +0200] rev 50905
path-suboption: use str for "delta_reuse_policy" suboptions
That second argument refer to an attribute and do not needs to be bytes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:47:16 +0200] rev 50904
path-suboption: use str for "multi_urls" path suboptions
That second argument refer to an attribute and do not needs to be bytes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 13:08:02 +0200] rev 50903
convert: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 16:57:16 +0200] rev 50902
mq: use sysstr to check for attribute access
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:51:27 +0200] rev 50901
lfs: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:38:02 +0200] rev 50900
mq: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:38:30 +0200] rev 50899
relink: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:22:55 +0200] rev 50898
ui: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:07:02 +0200] rev 50897
remotefilelog: use sysstr to access for attributes
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:28:09 +0200] rev 50896
hgwebmod: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:07:00 +0200] rev 50895
remotefilelog: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:02:43 +0200] rev 50894
extensions: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:00:14 +0200] rev 50893
bundle2: use sysstr to check for attribute presence
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:32:45 +0200] rev 50892
largefile: use sysstr to check for attribute presence in `hgsubrepoarchive`
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:03:11 +0200] rev 50891
largefile: use sysstr to check for attribute presence in `openstore`
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:01:37 +0200] rev 50890
largefile: use sysstr to check for attribute presence in `rebase` wrapping
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:00:56 +0200] rev 50889
largefile: use sysstr to check for attribute presence in `getstatuswriter`
We do not need bytes here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:24:12 +0200] rev 50888
run-tests: detect HGWITHRUSTEXT value
Without this, some manual check in tests/test-dirstate.t could get confused by
the lack of `rust` in module policy and break the test.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 29 Aug 2023 22:13:18 +0200] rev 50887
convert: stabilize subversion date sorter
In case of tie, this provides unstable result on my system. So I am adding a
couple of tie breaker to fix the test.
Spencer Baugh <sbaugh@janestreet.com> [Thu, 31 Aug 2023 19:47:33 -0400] rev 50886
rhg: allow setting defaults.cmd to an empty string
This is used by at least one hg UI to prevent defaults from affecting
the command:
https://github.com/emacs-mirror/emacs/blob/
b71beb7ae7c60a5c5af608420d28fdda5265a264/lisp/vc/vc-hg.el#L245
Let's let it work.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:19:33 -0400] rev 50885
uncommit: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:16:38 -0400] rev 50884
split: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:09:33 -0400] rev 50883
releasenotes: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:05:52 -0400] rev 50882
narrow: hoist a variable to a higher level to avoid use-before-init warning
In practice, this shouldn't generate an IOError, so there wouldn't have been a
problem. But PyCharm didn't know that.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:04:17 -0400] rev 50881
narrow: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:51:49 -0400] rev 50880
largefiles: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:43:41 -0400] rev 50879
keyword: migrate `opts` to native kwargs