Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2023 12:29:12 +0100] rev 51176
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Dec 2023 03:49:48 +0100] rev 51175
persistent-nodemap: avoid writing nodemap for empty revlog
The format cannot encode the lack of tip_rev.
There is currently nothing known to write such empty nodemap right now, but the
change we are preparing on default reveal this issue. So I had rather fix it on
stable.
Julien Cristau <jcristau@mozilla.com> [Tue, 12 Dec 2023 11:47:48 +0100] rev 51174
histedit: remove superfluous echo() and endwin() calls (
issue6859)
ncurses patchlevel
20231111 started returning an error from endwin() if
called twice without a intervening screen update.
Per Sven Joachim in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1058041#17: "AFAICS,
invoking curses.echo() and curses.endwin() is superfluous
because curses.wrapper already does that for you, and calling
curses.endwin() twice throws an error with the newer ncurses. Removing
those two lines should fix the problem."
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Dec 2023 09:31:07 -0800] rev 51173
statprof: handle `lineno == None` in more cases
This continues the work from
972f3e5c94b8. We saw a crash on line 956 but I
updated lots of other places as well.
Raphaël Gomès <rgomes@octobus.net> [Thu, 07 Dec 2023 14:28:31 +0100] rev 51172
branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Thu, 07 Dec 2023 14:22:55 +0100] rev 51171
Added signature for changeset
71bd09bebbe3
Raphaël Gomès <rgomes@octobus.net> [Thu, 07 Dec 2023 14:22:46 +0100] rev 51170
Added tag 6.6.1 for changeset
71bd09bebbe3
Raphaël Gomès <rgomes@octobus.net> [Thu, 07 Dec 2023 14:19:02 +0100] rev 51169
relnotes: add 6.6.1
Anton Shestakov <av6@dwimlabs.net> [Sat, 02 Dec 2023 15:10:28 -0300] rev 51168
procutil: move stdin assignment outside of try-finally block
There is an stdin variable in the global scope of this module. And in the
`finally` block of this try-finally statement we're checking `if stdin is not
None`. Let's make sure we don't confuse code check tools into thinking we want
to use global stdin by moving this line of code outside of `try`.
This was caught by pytype 2023.11.21 on Python 3.11.2.
Anton Shestakov <av6@dwimlabs.net> [Sat, 02 Dec 2023 15:02:03 -0300] rev 51167
zeroconf: give inet_aton() str instead of bytes
All other uses of this function in this extension are already fixed (i.e. use
strings instead of bytes).
This was caught by pytype 2023.11.21 on Python 3.11.2.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Dec 2023 16:29:43 +0100] rev 51166
revlog: avoid wrongly updating the data file location on "divert"
If we are in the inline case, we need to align the location of the "data" file
with the temporary location of the file (i.e. "00changelog.i.a"). However we
should not do that for non-inline case… and before this changeset we had been
doing it. In addition `index_file` is already a property taking care of updating
the "segment file" filename when needed. So we can simply remove all that code.
As a result, code trying to read the diverted data before they were committed
ended deeply confused as the "00changelog.i.a" file is nothing like the
"00changelog.d" file.
However nothing corrupted data as all writing where properly handled outside of
the "segment file".
In "best" cases this small in-memory corruption of the filename when unnoticed
until the transaction was committed or rolled back and in the worse case, some
data reading was failing during the transaction and resulted in the transaction
to be rolled back. However wrong data never reached the disk, so this bug should
be have corrupted any repository.
This is not catch by tests because most test use a small repository and
therefor an inline revlog. In addition the bug only triggers when a
changelog read is done in the following "rare" situation:
- after some delayed write
- after that data have been written in a "divert" file (i.e. `00.changelog.i.a`)
- before transaction commit
- outside of a "writing" context
The issue was introduced in
d83d788590a8
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Dec 2023 00:34:08 +0100] rev 51165
revlog: avoid exposing delayed index entry too widely in non-inline revlog
Before this change, the index entry would be seen as "appended" to the data
file. It did not hurt too much as there are never accessed for reading, but this
was odd. So lets stop doing so.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Dec 2023 15:38:15 +0100] rev 51164
revlog: add one more assert about state of thing when splitting
This assert is currently happy, but it does not hurt to adds it to clarify
expected state and catch potential error in the future.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 29 Nov 2023 08:32:24 -0800] rev 51163
add: don't attempt to add back removed files unless explicitly listed
This fixes the bug demonstrated by the previous patch.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 28 Nov 2023 22:44:04 -0800] rev 51162
tests: show failure to `hg add -I` a dir->symlink transition
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Apr 2023 21:56:16 +0200] rev 51161
setup: try a non-pure version of the local Mercurial if the pure fails
Things like `zstd` can make the pure version fails.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Dec 2023 22:13:37 +0100] rev 51160
setup: make debug simpler by adding a `__repr__` to `hgcommand`
This help when trying to debug this logic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Dec 2023 02:13:23 +0100] rev 51159
censor: fix things around inlining
The temporary revlog cannot go through the inline → split process as this would
break at transaction commit. (that might be fixable, but lets keep things
simple for now). We introduce a cleaner way to enforce this as the previous one
was broken in 6.6
On the way we remove multiple weird, fragile and broken overwrite of revlog
attributes and we focus on passing the configuration across.
We also had to update the test to actually create a non-inline revlog.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Dec 2023 02:12:21 +0100] rev 51158
revlog: add a `may_inline` argument to revlog
This allow for a clean skipping of the inline feature when needed, for example
by censor.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Dec 2023 02:11:20 +0100] rev 51157
revlog: allow explicit passing of config to revlog
This will be useful to fix censor in a later changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Dec 2023 01:06:35 +0100] rev 51156
censor: show that the `not-inline` → `inline` test is broken
The source revlog should not be inlined and it is…
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 15 Nov 2023 18:43:03 +0000] rev 51155
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 15 Nov 2023 18:41:33 +0000] rev 51154
rust: add a utility function to merge ordered fallible iterators
Adding a function merge_join_results_by, a version of
itertools::merge_join_by that works on "fallible" iterators
(iterators that can produce errors)
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 16 Oct 2023 18:56:40 +0100] rev 51153
rhg: refactor hg status, make the display code usable for non-dirstate status
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 03 Dec 2023 04:49:49 +0100] rev 51152
perf-tags: fix clear_cache_fnodes to actually clear that cache
The function was not doing it what it advertise for a long time. So we fix it
and we add a way for the perf extensions to detect broken version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 03 Dec 2023 04:43:08 +0100] rev 51151
perf-tags: fix the --clear-fnode-cache-rev code
It seems like this code never run?
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 04 Dec 2023 17:20:31 +0000] rev 51150
tests: do not fail tests in a state with uncommitted .py file removal
The problem is that [hg locate] lists removed files too.
We use [hg files] instead because that does not list removed files.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 02 Dec 2023 00:52:37 -0500] rev 51149
tests: fill in the Windows pattern for `$EADDRNOTAVAIL$` matching
This fixes test-https.t on Windows.
It looks like the real error translation is "Cannot assign requested address.",
and the message here is the start of a longer description, so I'm not sure why
this part is emitted. But it's not worth digging into, as it's evidently the
same failure.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 02 Dec 2023 00:34:44 -0500] rev 51148
tests: avoid a cascading failure on Windows
The `identify --debug` command here on Windows emits
skip updating dirstate: identity mismatch
because of the debug switch, which got captured and added to `.hgtags`, and then
hijinx ensued. The point of `--debug` seemed to be to get the long hash, so
just do that with templating. I have not idea if the message is indicating a
problem- there seems to be many more of them in other tests that are not present
on Linux.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 01 Dec 2023 23:58:12 -0500] rev 51147
phabricator: stringify the argument to `getattr()`
This fixes a "TypeError: getattr(): attribute name must be string" crash and
subsequent test spew. This likely broke in
18c8c18993f0 and was missed in CI
because `pytest-vcr` is missing.