Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 06 Mar 2021 06:32:25 +0100] rev 46639
releasenotes: use the right API to access the 'sections'
Preventing direct access to the underlying dict fix a breakage introduced by the
refactoring in
d3df397e7a59.
This changeset is similar to
271dfcb98544,
5272542196cc and
f7621fa14b84. The
breackage of `releasenotes.py` stayed under my radar as the CI did not have
fuzzywuzzy installed. (Something that is about to be fixed).
Differential Revision: https://phab.mercurial-scm.org/D10121
Raphaël Gomès <rgomes@octobus.net> [Wed, 03 Mar 2021 12:37:13 +0100] rev 46638
requirements: also add a fncache constant
Continue the cleanup to the remaining requirements
Differential Revision: https://phab.mercurial-scm.org/D10109
Raphaël Gomès <rgomes@octobus.net> [Wed, 03 Mar 2021 12:35:29 +0100] rev 46637
requirements: also add a store constant
Continue the cleanup to the remaining requirements
Differential Revision: https://phab.mercurial-scm.org/D10108
Raphaël Gomès <rgomes@octobus.net> [Wed, 03 Mar 2021 12:33:24 +0100] rev 46636
requirements: also add a dotencode constant
Continue the cleanup to the remaining requirements
Differential Revision: https://phab.mercurial-scm.org/D10107
Raphaël Gomès <rgomes@octobus.net> [Tue, 02 Mar 2021 18:51:18 +0100] rev 46635
pure-parsers: document index class constants
This also adds the big endian prefix `>` to make the constants truly
platform-independent, even if no issue with this has been reported in the wild.
Differential Revision: https://phab.mercurial-scm.org/D10104
Martin von Zweigbergk <martinvonz@google.com> [Thu, 04 Mar 2021 16:06:55 -0800] rev 46634
copies: choose target directory based on longest match
If one side of a merge renames `dir1/` to `dir2/` and the subdirectory
`dir1/subdir1/` to `dir2/subdir2/`, and the other side of the merge
adds a file in `dir1/subdir1/`, we should clearly move that into
`dir2/subdir2/`. We already detect the directories correctly before
this patch, but we iterate over them in arbitrary order. That results
in the new file sometimes ending up in `dir2/subdir1/` instead. This
patch fixes it by iterating over the source directories by visiting
subdirectories first. That's achieved by simply iterating over them in
reverse lexicographical order.
Without the fix, the test case still passes on Python 2 but fails on
Python 3. It depends on the iteration order of the dict. I did not
look into how it's built up and why it behaved differently before the
fix. I could probably have gotten it to fail on Python 2 as well by
choosing different directory names.
Differential Revision: https://phab.mercurial-scm.org/D10115
Joerg Sonnenberger <joerg@bec.de> [Thu, 04 Mar 2021 21:58:55 +0100] rev 46633
exchange: stop advertising rev-branch-cache bundle capability
Since Mercurial 5.7, the corresponding bundle part is ignored as
redundant. Stop advertising it so that peers don't have to spend time
creating or transfering it.
Differential Revision: https://phab.mercurial-scm.org/D10114
Martin von Zweigbergk <martinvonz@google.com> [Fri, 29 Jan 2021 16:33:12 -0800] rev 46632
errors: use more specific errors in rebase extension
Differential Revision: https://phab.mercurial-scm.org/D9914
Joerg Sonnenberger <joerg@bec.de> [Mon, 01 Mar 2021 16:54:51 +0100] rev 46631
changelog: rename parameters to reflect semantics
`read` and `readfiles` can be used with a revision just as well, so
follow the naming convention in revlog to reflect this.
Differential Revision: https://phab.mercurial-scm.org/D10081
Simon Sapin <simon.sapin@octobus.net> [Thu, 25 Feb 2021 21:29:12 +0100] rev 46630
rhg: Don’t attempt to read persistent nodemap without .hg/requires opt-in
Differential Revision: https://phab.mercurial-scm.org/D10077
Kyle Lippincott <spectral@google.com> [Thu, 04 Feb 2021 17:34:20 -0800] rev 46629
debian: support a "chg-first" installation mechanism (hg is actually chg)
This mechanism builds chg such that it looks for `hg` to be available at
/usr/lib/mercurial/hg instead of in the $PATH as `hg`, and makes the `hg` in
/usr/bin be a symlink to `chg`.
It's important to note that the hg binary must continue to be named `hg`. If we
wanted to instead place it at /usr/bin/pyhg or something similar, we would need
to modify Mercurial to allow that basename. Failure to do so would break
Mercurial's shell aliases that use `hg`, `chg`, or `$HG`.
I don't know if we should ever have a setup like this be the default setup, but
I'm willing to get more information on our experience with it for making such a
determination. Actually making it the default might be rather involved, as we
don't maintain the official debian packaging rules.
Differential Revision: https://phab.mercurial-scm.org/D10020
Joerg Sonnenberger <joerg@bec.de> [Thu, 04 Mar 2021 00:31:18 +0100] rev 46628
relnotes: document a number of node->revision type changes
Differential Revision: https://phab.mercurial-scm.org/D10103
Raphaël Gomès <rgomes@octobus.net> [Wed, 03 Mar 2021 12:30:23 +0100] rev 46627
requirements: also add a generaldelta constant
Continue the cleanup to the remaining requirements
Differential Revision: https://phab.mercurial-scm.org/D10106
Raphaël Gomès <rgomes@octobus.net> [Wed, 03 Mar 2021 14:00:45 +0100] rev 46626
requirements: add constant for revlog v1 requirement
Since this series is adding a new requirement, we might as well clean up while
we're here.
Differential Revision: https://phab.mercurial-scm.org/D10105
Raphaël Gomès <rgomes@octobus.net> [Thu, 18 Feb 2021 15:07:45 +0100] rev 46625
error: add `hint` attribute to `SidedataHashError`
This prevents an exception within an exception because `hint` does not exist.
Differential Revision: https://phab.mercurial-scm.org/D10024
Raphaël Gomès <rgomes@octobus.net> [Fri, 19 Feb 2021 11:17:16 +0100] rev 46624
changegroup: use the local variable instead of reaching through self
Gratuitous cleanup while I was here.
Differential Revision: https://phab.mercurial-scm.org/D10023
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jan 2021 12:17:11 +0100] rev 46623
config: use level to properly deal with value priority
A higher priority alias will now take precedence over lower priority ones.
This was a requirements step before using alias more widely, especially to
rename existing and established config option.
Differential Revision: https://phab.mercurial-scm.org/D9927
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jan 2021 11:21:49 +0100] rev 46622
config: track the "level" of a value
Config value now remember the "level" of the config that loaded it. This will be
used to ensure good priority management for alias.
Differential Revision: https://phab.mercurial-scm.org/D9926
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jan 2021 10:28:03 +0100] rev 46621
config: track "source" along side value
Currently the source is stored in a entirely different way than the data. This
is impractical. Especially if we are about to add more of such metadata. So lets
put them back together.
Differential Revision: https://phab.mercurial-scm.org/D9925
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 30 Jan 2021 00:32:42 +0100] rev 46620
config: use a new `alter` method in `fixconfig`
The `set` function is doing various work related to metadata (eg: the source,
later the level). However the `fixconfig` call only updating some values
according to standard processing, not changing any of the related metadata. So
we introduce a new method and use it there.
Differential Revision: https://phab.mercurial-scm.org/D9924
Martin von Zweigbergk <martinvonz@google.com> [Mon, 01 Mar 2021 14:44:29 -0800] rev 46619
copies-rust: remove an unnecessary format!() inside assert!()
The `assert!()` macro supports formatting. Rust 2021 no longer
supports an unnecessary `format!()` inside it. I noticed because I
recently update my Rust toolchain and `test-check-cargo-lock.t`
started failing.
Differential Revision: https://phab.mercurial-scm.org/D10085
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 01 Mar 2021 20:08:26 +0100] rev 46618
copies: tests and fix parallel computation of changed file information
The code was mixing variable name and misbehaving in some case. This changeset
fix it and also add a tests to validate it does not regress. Without the fix,
the parallel-upgrade misbehavior in random ways.
Differential Revision: https://phab.mercurial-scm.org/D10084
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jan 2021 13:07:00 +0100] rev 46617
config: test priority involving alias and cli
Differential Revision: https://phab.mercurial-scm.org/D9920
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jan 2021 12:03:29 +0100] rev 46616
config: test priority involving alias and include
Differential Revision: https://phab.mercurial-scm.org/D9919
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jan 2021 12:02:28 +0100] rev 46615
config: test priority involving alias
Differential Revision: https://phab.mercurial-scm.org/D9918
Simon Sapin <simon.sapin@octobus.net> [Thu, 25 Feb 2021 21:25:04 +0100] rev 46614
rhg: Check .hg/requires for absence of required features
Some old repository layouts are not supported.
Differential Revision: https://phab.mercurial-scm.org/D10076
Simon Sapin <simon.sapin@octobus.net> [Thu, 25 Feb 2021 23:14:35 +0100] rev 46613
rhg: Bug fix: with share-safe, always read store requirements
That is, the `store/requires` file,
regardless of whether the repository is a shared.
Differential Revision: https://phab.mercurial-scm.org/D10078
Simon Sapin <simon.sapin@octobus.net> [Mon, 11 Jan 2021 12:17:16 +0100] rev 46612
copies-rust: pass closures and iterators instead of `&ChangedFiles`
… to some functions that only use one method.
This will makes it easier to unit-test them.
Differential Revision: https://phab.mercurial-scm.org/D10070
Simon Sapin <simon.sapin@octobus.net> [Fri, 08 Jan 2021 11:58:16 +0100] rev 46611
copies-rust: pass `PathToken` around by value
It’s just a `usize`.
Differential Revision: https://phab.mercurial-scm.org/D10069
Martin von Zweigbergk <martinvonz@google.com> [Wed, 24 Feb 2021 09:27:33 -0800] rev 46610
tests: correct a commit description in test-copies-chain-merge.t
Differential Revision: https://phab.mercurial-scm.org/D10065
Augie Fackler <augie@google.com> [Wed, 24 Feb 2021 12:40:54 -0500] rev 46609
fuzz: if the caller of our makefile sets CC and CXX, trust them
This should fix the broken fuzzing build, because we've been
explicitly using clang++ but are now being given a CXX=afl++, which
does extra stuff.
Differential Revision: https://phab.mercurial-scm.org/D10066
Simon Sapin <simon.sapin@octobus.net> [Fri, 26 Feb 2021 12:16:43 +0100] rev 46608
rhg: Use clap’s support for global CLI arguments
By default, clap only accepts app-level arguments (as opposed to sub-command
level) to be specified before a sub-command: `rhg -R ./foo log`. Specifying
them after would be rejected: `rhg log -R ./foo`.
Previously we worked around that by registering global arguments both
at the app level and on each sub-command, but that required looking
for their value in two places. It turns out that Clap has built-in support
for what we want to do, so let’s use it.
Also, Clap "settings" turn out to be either global or not too.
Let’s make `AllowInvalidUtf8` apply to sub-commands too.
Differential Revision: https://phab.mercurial-scm.org/D10080