rewriteutil: fix crash when a rewritten message references f{6,64}
Without this, the rewriteutil logic thinks it's found a reference to the wdir
pseudo-revision, and then tries to look it up and rewrite it. Stop it from
doing that.
Amusingly, I had trouble working with this changeset when I didn't
describe the defect above using a regular expression, because it would
trigger the bug in my installed version of hg.
Differential Revision: https://phab.mercurial-scm.org/D11232
tests: add explicit coverage for update_hash_refs from rewriteutil
I couldn't find any evidence this is covered by tests in core (but there's a
good chance I missed it). We've seen a cute bug in that code, but first
let's just cover the cases that work correctly.
Differential Revision: https://phab.mercurial-scm.org/D11231
store: document the decoding discrepancy in store.py
This will help future people that might be looking into this.
Differential Revision: https://phab.mercurial-scm.org/D11220
clone: add a file with special character while testing uncompressed
This will make sure we currently do not have any actual impact from
issue6548.
Differential Revision: https://phab.mercurial-scm.org/D11219
clone: test local clone in `test-clone-uncompressed.t` too
This is not an uncompressed test but needs to be tested in the same kind of
constraints regarding special file name.
Differential Revision: https://phab.mercurial-scm.org/D11218
test-transaction-safety: relax some of the synchronisation schedule
We can have `internal` and `external` runs at the same time, so we unlock
`external` a bit sooner.
Differential Revision: https://phab.mercurial-scm.org/D11216
test-transaction-safety: document the test schedule
This helps reader to understand how the test work and actually helped me to
detect a missing synchronisation step.
Differential Revision: https://phab.mercurial-scm.org/D11215
rhg: Propagate permission errors when finding a repository
The Rust standard library has a `Path::is_dir` method that returns false
for any I/O error (such as a permission error),
not just "No such file or directory".
Instead add an `is_dir` function that returns false for non-directories
and for "No such file or directory" errors, but propagates other I/O errors.
Differential Revision: https://phab.mercurial-scm.org/D11230