Matt Harbison <matt_harbison@yahoo.com> [Thu, 24 Dec 2020 11:21:23 -0500] rev 46495
tagcache: distinguish between invalid and missing entries
The TortoiseHg repo has typically not had a newly applied tag accessible by name
for recent releases, for unknown reasons. Deleting and rebuilding the tag cache
doesn't fix it, though deleting the cache and running `hg log -r $new_tag` does.
Eventually the situation does sort itself out for new clones from the server.
In an effort to figure out what the issue is, Pierre-Yves David suggested
listing these entries in the debug output more specifically.
This isn't complete yet- the second test change that says "missing" is more like
"invalid", since it was truncated. The problem there is the code that reads the
raw array truncates any partial records and then fills it with 0xFF, which
signifies that it is missing. As a side note, that means the check for the
length when validating an existing entry never fails.
Differential Revision: https://phab.mercurial-scm.org/D9811
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Feb 2021 20:36:46 -0800] rev 46494
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Feb 2021 23:03:54 +0100] rev 46493
hooks: add a `auto` value for `hooks.*run-with-plain`
That setting restore the behavior pre-5.6. The current HGPLAIN value is simply
passed to the hooks.
This allow user who needs it to fully mitigate the behavior change introduced
in Mercurial 5.7 by restoring the older behavior.
Differential Revision: https://phab.mercurial-scm.org/D9982
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Feb 2021 23:21:21 +0100] rev 46492
hooks: introduce a `:run-with-plain` option for hooks
This option control if HGPLAIN should be set or not for the hooks. This is the
first step to give user some control of the HGPLAIN setting for they hooks.
Some hooks (eg: consistency checking) deserve to be run with HGPLAIN, some other
(eg: user set visual helper) might need to respect the user config and setting.
So both usage are valid and we need to restore the ability to run -without-
HGPLAIN that got lost in Mercurial 5.7.
This does not offer a way to restore the pre-5.7 behavior yet (respect whatever
HGPLAIN setting from the shell), this will be dealt with in the next changeset.
The option name is a bit verbose because implementing this highlighs the need
for another option: `:run-if-plain`. That would make it possible for some hooks
to be easily disabled if HG PLAIN is set. However such option would be a new
feature, not something introduced to mitigate a behavior change introduced in
5.7, so the `:run-if-plain` option belong to the default branch and is not part
of this series.
Differential Revision: https://phab.mercurial-scm.org/D9981
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Feb 2021 22:43:16 +0100] rev 46491
hooks: add some test about HGPLAIN setting and hooks
In Mercurial 5.7, hooks are now ran with HGPLAIN set, which is a behavior change
in. I could not find explicit test about it so I am adding one. The next
changesets will introduce more change to help user mitigate the behavior change
when needed.
Differential Revision: https://phab.mercurial-scm.org/D9979
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Feb 2021 21:05:05 +0100] rev 46490
hooks: forbid ':' in hook name
The `:` character is a special separator in the config and it seems same do to
the same for hooks. This is necessary to improve the experience around the
HGPLAIN behavior change in 5.7. See next changesets for details.
Differential Revision: https://phab.mercurial-scm.org/D9978
Raphaël Gomès <rgomes@octobus.net> [Wed, 10 Feb 2021 21:46:29 +0100] rev 46489
rust-status: honor matcher when using the dirstate-only fast-path (
issue6483)
Differential Revision: https://phab.mercurial-scm.org/D9977
Raphaël Gomès <rgomes@octobus.net> [Wed, 10 Feb 2021 22:01:23 +0100] rev 46488
status: add test that shows that the Rust implementation has a bug
Differential Revision: https://phab.mercurial-scm.org/D9976
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Feb 2021 19:23:56 +0100] rev 46487
tweak-default: no longer enable the experimental return code
The change is quite new and undocumented (since it is experimental) so it seems
premature to make it available in tweak default. In addition, I am not sure the
new return code are frozen yet (eg: some of the initial feedback have not been
incorporated). Before the release I doubled check (probably with Martin) that
they were not enabled by default and got replied that they were only enabled in
the tests. Have I been aware that they have been also enabled in tweak default I
would I have lobbied to delay that.
I discovered they were in tweak default from users feedback. They found it an
unpleasant and unexpected surprise of 5.7.
So I suggest we no enable enable this experimental feature for Mercurial 5.7 and
revisit this later, when the feature will be more mature.
Differential Revision: https://phab.mercurial-scm.org/D9975
Simon Sapin <simon.sapin@octobus.net> [Thu, 04 Feb 2021 15:04:53 +0100] rev 46486
rhg: Parse per-repository configuration
Differential Revision: https://phab.mercurial-scm.org/D9964
Simon Sapin <simon.sapin@octobus.net> [Thu, 04 Feb 2021 14:29:47 +0100] rev 46485
rhg: Abort based on config on share-safe mismatch
Differential Revision: https://phab.mercurial-scm.org/D9963
Simon Sapin <simon.sapin@octobus.net> [Thu, 04 Feb 2021 13:17:55 +0100] rev 46484
rhg: Parse system and user configuration at program start
… and pass it around up to `Repo::find`
Differential Revision: https://phab.mercurial-scm.org/D9962
Simon Sapin <simon.sapin@octobus.net> [Thu, 04 Feb 2021 13:16:21 +0100] rev 46483
rust: Parse system and user configuration
CLI `--config` argument parsing is still missing, as is per-repo config
Differential Revision: https://phab.mercurial-scm.org/D9961
Simon Sapin <simon.sapin@octobus.net> [Mon, 01 Feb 2021 13:32:00 +0100] rev 46482
rust: Remove unnecessary check for absolute path before joining
`Path::join` does the right thing if its argument is absolute.
Differential Revision: https://phab.mercurial-scm.org/D9960
Simon Sapin <simon.sapin@octobus.net> [Mon, 01 Feb 2021 12:25:53 +0100] rev 46481
rust: replace read_whole_file with std::fs::read
It does the same thing
Differential Revision: https://phab.mercurial-scm.org/D9959
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Feb 2021 09:37:39 -0800] rev 46480
wireprotopeer: clarify some variable names now that we allow snake_case
"encargsorres" is hard to parse ("encarg sorres" sounds like it might
be Spanish to me, and indeed Google Translate tells me that it's
Catalan for "order sands"). Let's clarify with some added underscores
and longer names.
Differential Revision: https://phab.mercurial-scm.org/D9973
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 Feb 2021 07:02:25 +0100] rev 46479
copy-tracing: add a --compute flag to debugchangedfiles
This will help analysis of possible misbehaving cases.
Differential Revision: https://phab.mercurial-scm.org/D9946
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Feb 2021 23:23:56 -0800] rev 46478
bundle2: print "error:abort" message to stderr instead of stdout
It seems like the server's message is something you'd like to see even
with `--quiet`. It's clearly part of the error.
Differential Revision: https://phab.mercurial-scm.org/D9954
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Feb 2021 13:55:58 -0800] rev 46477
narrow: add --no-backup option for narrowing
Most of our users at Google use Mercurial on a file system that keeps
backups of previous versions of all files, including those in
`.hg/`. They therefore don't need a separate backup in the file system
when narrowing their repo (which they typically do by running `hg
tracked --auto-remove-includes`). Backups can be very slow. `hg strip`
already has a `--no-backup` option. This patch adds the same option to
`hg tracked --removeinclude/--addexclude`.
Differential Revision: https://phab.mercurial-scm.org/D9951
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jan 2021 15:23:07 +0100] rev 46476
debugdiscovery: add flags to run discovery on subsets of the local repo
Generating new repository using strip of local clone is very expensive for large
repositories. And such large repository are the most likely to requires
debugging around discovery. So we add a simple way to run discovery using
provided sets of heads.
Differential Revision: https://phab.mercurial-scm.org/D9945
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Feb 2021 00:11:46 +0100] rev 46475
cmdutil: add a missing byte prefix to string introduce in
976b26bdd0d8
The change is missing a the `b'foo'` prefix to make it a bytestring. This lead
to a traceback in some third party extension. It is unclear to me why the
Mercurial test pass without it.
Differential Revision: https://phab.mercurial-scm.org/D9974
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Jan 2021 10:20:58 +0100] rev 46474
relnote: remove the reference to `debugstrip`
The `debug` namespace is not intended for end user and advertising it is a path
to confusion and trouble. I think we should wait for the `admin` namespace to
exists and the command to be available as `admin--strip` before we advertise it.
Differential Revision: https://phab.mercurial-scm.org/D9817
Augie Fackler <augie@google.com> [Tue, 02 Feb 2021 13:25:28 -0500] rev 46473
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 01 Feb 2021 00:02:00 +0530] rev 46472
upgrade: implement partial upgrade for upgrading persistent-nodemap
Upgrading repositories to use persistent nodemap should be fast and easy as it
requires only two things:
1) Updating the requirements
2) Writing a persistent-nodemap on disk
For both of the steps above, we don't need to edit existing revlogs.
This patch makes upgrade only do the above mentioned two steps if we are
only upgarding to use persistent-nodemap feature.
Since `nodemap.persist_nodemap()` assumes that there exists a nodemap file for
the given revlog if we are trying to call it, this patch adds `force` argument
to create a file if does not exist which is true in our upgrade case.
The test changes demonstrate that we no longer write nodemap files for manifest
after upgrade which I think is desirable.
Differential Revision: https://phab.mercurial-scm.org/D9936