tests: accept alternative privileged port allocation failure
This registers an additional failure message on failed privileged port
allocation, equally funcionally valid but previously not handled and causing
the test to fail when run in the NixOS sandbox.
Differential Revision: https://phab.mercurial-scm.org/D11741
tests: allow the true command to be provided by coreutils
The `true` command is sometimes provided as a symbolic link to the `coreutils`
single binary. This is the case on NixOS, on which the test was failing because
the symbolic link fully resolves to the latter name, equally valid but not
previously accepted by the test's golden output.
Differential Revision: https://phab.mercurial-scm.org/D11740
tests: add guard check for suid support
This adds a check for setuid and setgid support and guards a part of a test
requiring this particular filesystem feature.
Such feature is notably missing in the Nix/NixOS build sandbox and was causing
the whole test to fail for the mercurial package.
Differential Revision: https://phab.mercurial-scm.org/D11739
rhg: more efficient `HgPath::join`
This commit makes `HgPath::join` slightly more efficient
by avoiding one copy.
It also avoids a particularly inefficient (quadratic) use of
`HgPath::join` by using a new mutating function `HgPathBuf::push` instead.
The name for `HgPathBuf::push` is chosen by analogy to `PathBuf::push`.
Differential Revision: https://phab.mercurial-scm.org/D11721
relnotes: update 6.0 with the last changes for the release
Differential Revision: https://phab.mercurial-scm.org/D11742
rhg: Fix `rhg status` file content comparison
This is only used when a file’s metadata make its status ambiguous,
which depends on timing of previous command executions.
Differential Revision: https://phab.mercurial-scm.org/D11743
rhg: make it possible to opt out of `rhg cat`
The reason an opt-out is needed is that there are still behavior
differences between `rhg cat` and `hg cat`:
- it does not interpret relative paths correctly
- it does not interpret patterns correctly, e.g. 're:foobar$' would be interpreted as a verbatim filename
- it does not implement the correct semantics of relpath matcher: if given a directory, `hg` concatenates all files in this directory, while `rhg` simply complains
Differential Revision: https://phab.mercurial-scm.org/D11723
tests: run the whole hg-core/path_auditor test in a clean temp dir
This makes the whole test happen in a clean temporary directory in
`$TMPDIR/$random`, and simplifies the test a bit by eliminating unnecessarily
dynamic path elements computations.
Before this patch, the first part of the test was happening in `/tmp` itself.
This allowed coincidentally named files placed in that directory to impact the
outcome of the test. Additionally, this made the second part of the test fail
on systems on which `$TMPDIR != /tmp`, because the inspected directory was
different from the one in which the mock files were being written. This fully
fixes the issue only partially solved in
db2bc9e667a1.
Differential Revision: https://phab.mercurial-scm.org/D11738
fsmonitor: fix traceback after removal of nonnormalset (
issue6600)
This basically does the same thing it used to do, but in the only place it's
needed.
Differential Revision: https://phab.mercurial-scm.org/D11707