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
fsmonitor: fix traceback about bytes and str incompatibility
This didn't work anymore in Python 3, switching to a `repr` based reporting does
Differential Revision: https://phab.mercurial-scm.org/D11708
backout: backed out changeset
67d14d4e036c
Same as the previous patch, this breaks the Windows CI for some yet unknown
reason.
Differential Revision: https://phab.mercurial-scm.org/D11727
backout: backed out changeset
f78d8b8c46d7
This and the following backout exist because the original patches break the
Windows CI for some yet unknown reason.
Differential Revision: https://phab.mercurial-scm.org/D11726