Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Mar 2023 04:11:29 +0100] rev 50386
dirstate: remove _actual_file_name methode
This is dead-code
Matt Harbison <matt_harbison@yahoo.com> [Tue, 28 Feb 2023 15:00:26 -0500] rev 50385
revlog: add an exception hint when processing LFS flags without the extension
It would be even better if this was either detected sooner, or the transaction
completed (especially since the read/write processors aren't needed for the
exchange). But this makes it easier for the user to resolve until that can be
figured out.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 23:12:23 -0500] rev 50384
tests: drop py36 conditionals in test-bad-extension.t
Since this is a `>=` test, it's really conditionalizing py27 content, which
isn't a thing anymore.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 23:11:05 -0500] rev 50383
tests: drop py36 conditionals in test-hook.t
Since this is a `>=` test, it's really conditionalizing py27 content, which
isn't a thing anymore.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 22:51:18 -0500] rev 50382
tests: drop py36 conditionals in test-http-bad-server.t
Since this is a `>=` test, it's really conditionalizing py27 content, which
isn't a thing anymore.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 23:04:09 -0500] rev 50381
configitems: enable changegroup3 by default (unless using infinitepush)
The LFS extension requires this, and if it isn't enabled on the client (or the
LFS extension isn't loaded), a web client gets a 500 instead of a sensible error
message. Now it gets a different (client) error, but maybe it can be handled
more gracefully.
c0f11347b107 indicates that treemanifest repos have this issue
too.
29cfc474c5fd mentions gating this behind `experimental` so that the format
could change, but that was 7 years ago and we now have an experimental
`changegroup4` as well.
We can keep this as a config for the next cycle in case someone runs into an
unexpected problem, and then jettison it if the infinitepush bundle name changes
are either acceptable as-is or can be created differently.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 27 Feb 2023 19:59:55 -0500] rev 50380
infinitepush: opt out of changegroup3 unless explicitly configured
This is currently a no-op, as changegroup3 is disabled by default. But when it
is enabled, it changes the hash names of the bundle files. As I don't use this
extension, I have no idea if that's OK or not. So keep the current default
behavior until we can get more info from actual users, while allowing them to
opt-in for testing purposes.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 13:31:17 -0500] rev 50379
statichttprepo: unbyteify several IOError messages
Builtin errors generally want str messages.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 13:11:51 -0500] rev 50378
statichttprepo: fix the vfs.join() method to match the base class definition
Flagged by PyCharm. The superclass implementation raised NotImplementedError.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 12:38:36 -0500] rev 50377
mail: unbyteify the SMTPException message
This is a subclass of OSError, which wants str instead of bytes.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 12:37:05 -0500] rev 50376
mail: add a missing argument to properly override starttls
I didn't look into when this changed, but it was flagged by PyCharm.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 11:53:31 -0500] rev 50375
crecord: switch a curses argument to bool to appease type checkers
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 11:45:57 -0500] rev 50374
grep: avoid reassigning byteskwargs to strkwargs
PyCharm flagged each of these `get()` calls with bytes. We still pass the bytes
form to the formatter to avoid changing the API, until all callers can be
changed.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Mar 2023 11:33:57 -0500] rev 50373
cat: drop unnecessary internal roundtrip of kwargs
PyCharm seems to stick with the type at the initial assignment, so it flagged
the `get()` with a bytes key since the method argument has str keys. It wasn't
a bug, but then the bytes form is otherwise unused, and converted back to str.
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 May 2023 14:17:28 +0200] rev 50369
Added signature for changeset
fc445f8abcf9
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 May 2023 14:17:19 +0200] rev 50368
Added tag 6.4.3 for changeset
fc445f8abcf9
Raphaël Gomès <rgomes@octobus.net> [Thu, 04 May 2023 14:16:07 +0200] rev 50367
relnotes: add 6.4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2023 00:16:38 +0200] rev 50366
backup: fix issue when the backup end up in a different directory
Because of store encoding, we might end up with the backup in a different
directory than the initial copy (for example if the backup path make it cross
the 120 char limit).
This can create crash, especially since 6.4 where backup are used during revlog
split.
Making sure the directory exists fixes these crash We added a test covering this
case.
Strictly speaking, this has always been broken, however the new code in 6.4
triggers it more easily.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2023 00:12:34 +0200] rev 50365
vfsproxy: inherit the `createmode` attribute too
It is an important part of the API when creating directory. We will need it in
the next changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 May 2023 21:43:45 +0200] rev 50364
revlog: test more complex file pattern for revlog split
There have been a report of failure while splitting revlog. The file name
involved was important. The pattern involved here are not problematic, but it
help to setup the machinery to test multiple files, the actual fix and
problematic file will arrive in a later changeset.
Raphaël Gomès <rgomes@octobus.net> [Tue, 02 May 2023 15:40:13 +0200] rev 50363
repo-upgrade: write new requirement before upgrading the dirstate
This will prevent a small race condition where another hg process still
believes the repo is dirstate-v1 during the upgrade process.
This is good to have, but it is not a proper fix for the underlying problem.
There is code that assumes a requirement means a usage, e.g. having the
`generaldelta` requirement would imply *all* revlogs to use general delta,
but it's not true, it simply means that the repository advertises to the
client it needs to understand `generaldelta` in order to read the repo.
In the case of the dirstate, having the requirement *technically* should always
be the same as using dirstate-v2, since there is only one dirstate and
requirements should be as minimal as possible. However, we should not assume
this and make the code more robust in a future patch (series).
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Wed, 26 Apr 2023 15:30:35 -0400] rev 50362
rhg: correctly relativize copy source path
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Wed, 26 Apr 2023 15:31:02 -0400] rev 50361
rhg: don't print copy source when --no-status is passed
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Wed, 26 Apr 2023 16:18:12 -0400] rev 50360
tests: add test for status copy source formatting
Matt Harbison <matt_harbison@yahoo.com> [Tue, 25 Apr 2023 17:49:35 -0400] rev 50359
fix: highlight the required configuration and behavior of the fixer tools
The problem is that `hg help fix` didn't mention *how* to configure the tools,
and while I knew that `{rootpath}` existed in the configuration, I missed that
the tools require reading content from stdin. (I configured `gofmt` to use
`{rootpath}`, and that had the effect of squashing all changes in a file at `.`
into the first commit and emptying that content from its descendants.)
Basically all this does is put a pointer in the default (command level) help to
the extension level help that mentions the configuration, and moves the
extension level help that documents reading from stdin and writing to stdout to
the top to give it more prominence. The last sentence is adjusted a bit to
reflect the new location.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Apr 2023 15:26:55 +0200] rev 50358
debug-delta: add minimal documentation for `devel.bundle-delta` option
So the next person won't have to grep the code to know what it is doing.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Apr 2023 16:37:11 +0200] rev 50357
delta-find: simply code that is now never invoqued without general delta
Finish early in on-general delta case mean a lot of code can assume that general delta is not enabled.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Apr 2023 17:17:31 +0200] rev 50356
delta-find: add a simple safeguard to prevent bad non-general-delta
This make it easier to catch request to build delta that does not make sense in
the general delta world.
It seems better to raise a programming error than to corrupt the repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Apr 2023 18:16:19 +0200] rev 50355
delta-find: never do anything fancy when general delta is off
Without general delta, the only option is to do a delta against the previous
revision in the revlog, or to do a full snapshot. So no need to dive into the
more complicated logic.
This prevent Mercurial to misbehave when applying remote deltas when
`pulled-delta-reuse-policy` was set to "try-base" or "forced" and would produce
and store invalid deltas.
We add an associated tests to make sure this scenario is covered by tests.
There are more code to cleanup after this, but I what to keep the fixing patch
simple.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Apr 2023 16:59:03 +0200] rev 50354
delta-find: assume the target-rev if not specified
This will be useful in the next patch, but I am putting it in its own commit to
make sure we can easily bisect any subtle side effect. (none are expected, but
still)