Raphaël Gomès <rgomes@octobus.net> [Thu, 29 Jun 2023 11:37:19 +0200] rev 51217
rust-index: check rindex and cindex return the same get_rev
This is a temporary safeguard while we synchronize both indexes.
Raphaël Gomès <rgomes@octobus.net> [Wed, 28 Jun 2023 16:43:39 +0200] rev 51216
rust-index: synchronize remove to Rust index
Future steps will bring the two indexes further together until we can
rip the C index entirely when running Rust code.
Raphaël Gomès <rgomes@octobus.net> [Wed, 28 Jun 2023 11:59:43 +0200] rev 51215
rust-index: remove `__setitem__` method from the mixed index
This is not defined on the Python or C one, and isn't used anywhere.
Raphaël Gomès <rgomes@octobus.net> [Wed, 28 Jun 2023 11:36:22 +0200] rev 51214
rust-index: check equality between rust and cindex for `__len__`
Raphaël Gomès <rgomes@octobus.net> [Tue, 27 Jun 2023 18:24:54 +0200] rev 51213
rust-index: synchronize append method
We now append to the Rust index just as we do to the C index. Future steps
will bring the two indexes further together until we can rip the C index
entirely when running Rust code.
Raphaël Gomès <rgomes@octobus.net> [Mon, 18 Sep 2023 17:11:11 +0200] rev 51212
rust-revlog: teach the revlog opening code to read the repo options
This will become necessary as we start writing revlog data from Rust.
Raphaël Gomès <rgomes@octobus.net> [Tue, 27 Jun 2023 17:34:51 +0200] rev 51211
rust-index: pass data down to the Rust index
This will allow us to start keeping the Rust index synchronized with the
cindex as we gradually implement more and more methods in Rust. This will
eventually be removed.
Raphaël Gomès <rgomes@octobus.net> [Tue, 27 Jun 2023 16:32:09 +0200] rev 51210
rust-index: add append method
This is the first time the Rust index has any notion of mutability.
This will be used in a future patch from Python, to start synchronizing the
Rust index and the C index.
Raphaël Gomès <rgomes@octobus.net> [Mon, 26 Jun 2023 19:16:07 +0200] rev 51209
rust-index: add an abstraction to support bytes added at runtimes
In order to support appending data to the Rust index, we need to abstract
data access away from the immutable (on-disk) bytes, to seemlessly fetch
either from the preexisting data or from the newly added data.
Raphaël Gomès <rgomes@octobus.net> [Thu, 29 Jun 2023 16:09:57 +0200] rev 51208
rust-mixed-index: move the mmap keepalive into a function
The same code will be used for keeping the new index mmap around.
Raphaël Gomès <rgomes@octobus.net> [Thu, 29 Jun 2023 15:00:46 +0200] rev 51207
rust-mixed-index: rename variable to make the next change clearer
We're going to add another mmap reference holder, so let's rename this one
first.
Georges Racinet <georges.racinet@octobus.net> [Wed, 27 Sep 2023 10:08:32 +0200] rev 51206
rust: fix cargo doc for hg-cpython
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 15 Dec 2023 11:10:24 +0100] rev 51205
branching: merge with default
We merge with the current children of the bad merge (37b52b938579)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 15 Dec 2023 11:08:41 +0100] rev 51204
branching: merge with stable
This recreates `37b52b938579` right as a `hg branch --rev 5b186ba40001` screwed
up the content.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Dec 2023 02:07:16 +0100] rev 51203
changelog: disallow delayed write on inline changesets
Since this will never happens, we can make the situation invalid and to stop to
handling the associated the case.
This simplify the random access file reading too.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2023 22:27:59 +0100] rev 51202
changelog: never inline changelog
The test suite mostly use small repositories, that implies that most changelog in the
tests are inlined. As a result, non-inlined changelog are quite poorly tested.
Since non-inline changelog are most common case for serious repositories, this
lack of testing is a significant problem that results in high profile issue like
the one recently fixed by 66417f55ea33 and 849745d7da89.
Inlining the changelog does not bring much to the table, the number of total
file saved is negligible, and the changelog will be read by most operation
anyway.
So this changeset is make it so we never inline the changelog, and de-inline the
one that are still inlined whenever we touch them.
By doing that, we remove the "dual code path" situation for writing new entry to
the changelog and move to a "single code path" situation. Having a single
code path simplify the code and make sure it is covered by test (if test cover
that situation obviously)
This impact all tests that care about the number of file and the exchange size,
but there is nothing too complicated in them just a lot of churn.
The churn is made "worse" by the fact rust will use the persistent nodemap on
any changelog now. Which is overall a win as it means testing the persistent
nodemap more and having less special cases.
In short, having inline changelog is mostly useless and an endless source of
pain. We get rid of it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2023 11:50:55 +0100] rev 51201
test-transaction-safety: glog out irrelevant flag
The test is focussing on the inline flag, so we glob out the other to highlight
that fact and prevent noise in the future.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2023 11:43:32 +0100] rev 51200
test-transaction-safety: perform the test on a filelog
This test previously checked the transaction safety of splitting the changelog.
The changelog is a special case, with delayed/diverted writes and we will stop
inlining it soon. So we keep testing that transaction is safe around inline on
another revlog type : a filelog.
Minor comestic adjustement will be done in the next changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Dec 2023 03:40:37 +0100] rev 51199
test: clarify test-parseindex offsets
We will make this revlog non-inline, so we clarify the code to make sure it is
simple to adjust the test later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Dec 2023 06:05:18 +0100] rev 51198
test: use more globing for perf timing
Not sure why we kept the number here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2023 12:29:12 +0100] rev 51197
branching: merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Dec 2023 09:31:07 -0800] rev 51196
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 51195
branching: merge stable into default
Martin von Zweigbergk <martinvonz@google.com> [Wed, 29 Nov 2023 08:32:24 -0800] rev 51194
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 51193
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 51192
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 51191
setup: make debug simpler by adding a `__repr__` to `hgcommand`
This help when trying to debug this logic.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 15 Nov 2023 18:43:03 +0000] rev 51190
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 15 Nov 2023 18:41:33 +0000] rev 51189
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 51188
rhg: refactor hg status, make the display code usable for non-dirstate status
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Nov 2023 15:22:05 -0500] rev 51187
debugformat: speedup the "plain-cl-delta" check
Checking every single revision is too slow, let's use a sampling approach.
pacien <pacien.trangirard@pacien.net> [Tue, 14 Nov 2023 22:47:17 +0100] rev 51186
templatekw: fix inconsistency of diffstat with diff.merge
Previously, `-T'{diffstat}'` was giving stats from the diff against p1,
regardless of whether `--config diff.merge=yes` is set.
This was inconsistent with `log --patch` which is aware of that option.
pacien <pacien.trangirard@pacien.net> [Wed, 15 Nov 2023 02:39:53 +0100] rev 51185
util: move diff_parent from logcmdutil to diffutil
This function will be used outside of the log command
(in templatekw, used by hgweb, for which logcmdutil is not available).
Let's move this function together with the rest of the diff-related
utils instead.
zegervdv <zeger@vandevan.net> [Thu, 07 Sep 2023 08:39:21 +0200] rev 51184
logcmdutil: return structured diffstat data for json
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Nov 2023 22:27:32 +0100] rev 51183
cleanup: drop the `bytes` compatibility for attribute related function
We can rely on the builtins directly now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Nov 2023 22:20:58 +0100] rev 51182
cleanup: turn `wrapfunction` deprecation warning into an error
We could simply drop the check, but lets raise explicit error instead of
suffering strange error in case of misuse.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Nov 2023 22:19:20 +0100] rev 51181
cleanup: turn `wrappedfunction` deprecation warning into an error
We could simply drop the check, but lets raise explicit error instead of
suffering strange error in case of misuse.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Nov 2023 22:17:41 +0100] rev 51180
cleanup: turn `pathsuboption` deprecation warning into an error
We could simply drop the check, but lets raise explicit error instead of
suffering strange error in case of misuse.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Nov 2023 22:13:14 +0100] rev 51179
cleanup: drop deprecated config attribute on the revlog class
This code was marked for deletion in the next cycle. We are now in the next
cycle.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Nov 2023 22:11:00 +0100] rev 51178
cleanup: drop `path.pushloc` deprecated since 6.5
This was scheduled for removal, let us remove it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Nov 2023 22:10:26 +0100] rev 51177
cleanup: drop `dirstate.is_changing_parent` deprecated since 6.5
This was scheduled for removal, let us remove it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Nov 2023 22:08:05 +0100] rev 51176
cleanup: remove some code scheduled to be removed after 5.9
looks like we missed this when cleaning up previous code.
Raphaël Gomès <rgomes@octobus.net> [Tue, 21 Nov 2023 16:22:47 +0100] rev 51175
branching: merge stable into default
Martin von Zweigbergk <martinvonz@google.com> [Mon, 13 Nov 2023 09:19:11 -0800] rev 51174
py3: pass unicode strings to hasattr() throughout
I guess we missed these instances because they're not covered by tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Feb 2024 18:28:01 +0100] rev 51173
perf: support --template on perf::phases
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Feb 2024 02:12:58 +0100] rev 51172
debugformat: fix formatting for compression level
`bytes(<int>)` gives a very different result as `str(<int>)` and the display
of `hg debugformat` have been broken for a while as a result.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 15 Feb 2024 18:10:41 +0000] rev 51171
tests: tweak chg test to make it fail less often
the test apparently sometimes prints the word "start" as a part of profile,
so let's no longer match "start":
CHGHG=/*/install/bin/hg (glob)
+ \x1b[90m | 50.0% 0.01s profiling.py: __enter__ line 196: self.start()\x1b[0m (esc)
+ \x1b[90m | 50.0% 0.01s profiling.py: start line 261: self._profiler.__enter__()\x1b[0m (esc)
+ \x1b[90m | 50.0% 0.01s profiling.py: statprofile line 125: statprof.start(mechanism=b'...\x1b[0m (esc)
+ \x1b[90m | 50.0% 0.01s statprof.py: start line 356: state.thread.start()\x1b[0m (esc)
+ \x1b[90m | 50.0% 0.01s threading.py: start line 852: self._started.wait()\x1b[0m (esc)
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 15 Feb 2024 15:21:43 +0000] rev 51170
cext: fix potential memory leaks of list items appended with PyList_Append
Also reduce the duplication in the tricky code that uses PyList_Append by
extracting it into a function `pylist_append_owned`.
Raphaël Gomès <rgomes@octobus.net> [Mon, 12 Feb 2024 16:17:08 +0100] rev 51169
Added signature for changeset 3fd1efb3ad12
Raphaël Gomès <rgomes@octobus.net> [Mon, 12 Feb 2024 16:16:10 +0100] rev 51168
Added tag 6.6.3 for changeset 3fd1efb3ad12
Raphaël Gomès <rgomes@octobus.net> [Mon, 12 Feb 2024 16:14:18 +0100] rev 51167
relnotes: add 6.6.3
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 08 Jan 2024 15:25:33 +0000] rev 51166
tests: fix nondeterministic test failure in test-contrib-perf.t
It turns out (not too shockingly!) the kernel sometimes has some work to do,
perhaps at the very least context-switching, so asserting the system time
is 0.000000 doesn't work.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 01 Feb 2024 19:35:35 -0500] rev 51165
grep: restore usage of --include/--exclude options
The refactor in 4a73df6eb67d accidentally forgot to transform the opts
argument for walkopts into a byteskwargs. This resulted in its options
being ignored. In particular, the -X/-I pair of options was missing.
A simple fix restores its usage. Tests included, of course.
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Tue, 30 Jan 2024 22:14:02 +0000] rev 51164
rust-changelog: don't panic on empty file lists
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Jan 2024 13:49:29 -0300] rev 51163
tests: use sha256line.py instead of /dev/random in test-censor.t (issue6858)
Sometimes the systems that run our test suite don't have enough entropy and
they cannot produce target file of the expected size using /dev/random, which
results in test failures. Switching to /dev/urandom would give us way more
available data at the cost of it being less "random", but we don't really need
to use entropy for this task at all, since we only care if the file size after
compression is big enough to not be stored inline in the revlog. So let's use
something that we already have used to generate this kind of data in other
tests.
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Jan 2024 13:35:30 -0300] rev 51162
tests: make sha256line.py available for all tests
This was previously only used in test-revlog-delta-find.t, but it will be
useful (and used) in other tests that might need to generate
poorly-compressible files.
Anton Shestakov <av6@dwimlabs.net> [Sun, 14 Jan 2024 16:03:08 -0300] rev 51161
tests: don't use "status" operand of dd in test-censor.t (issue6858)
Some implementations don't have this operand, let's just direct stderr into
/dev/null, that's pretty cross-platform.
Also specify bs=512 (the default for me), because the default might be
different on different systems. Other uses of dd in the tests do specify it, so
this is more consistent.
Raphaël Gomès <rgomes@octobus.net> [Thu, 11 Jan 2024 17:49:51 +0100] rev 51160
Added signature for changeset 136902b3a95d
Raphaël Gomès <rgomes@octobus.net> [Thu, 11 Jan 2024 17:49:37 +0100] rev 51159
Added tag 6.6.2 for changeset 136902b3a95d
Raphaël Gomès <rgomes@octobus.net> [Thu, 11 Jan 2024 17:49:04 +0100] rev 51158
relnotes: add 6.6.2