Mercurial > hg
changeset 49549:e255a5355971 stable
dirstate-v2: highlight a bug when Python-packed but used in `rhg`
The Python packer creates unsorted entries in the edge case that a file
starts with the same name as a sibling folder.
This bug has no effect on the Python `hg status` since Python ignores
directories. `rhg` assumes that all on-disk entries are sorted (which is
a property of the format) including folder, hence the issue highlighted.
This is also technically broken in Rust-augmented `hg status`, but it
makes setting up the test more complex than necessary, since it requires
the packing to be Python only (which it isn't if you have Rust extensions).
Fix is in the next commit.
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 26 Oct 2022 18:24:34 +0200 |
parents | 318bdd289cf2 |
children | fc719967efd0 |
files | tests/test-dirstate.t |
diffstat | 1 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-dirstate.t Wed Oct 26 12:20:23 2022 +0200 +++ b/tests/test-dirstate.t Wed Oct 26 18:24:34 2022 +0200 @@ -245,3 +245,27 @@ $ hg status A foo + $ cd .. + +Check dirstate ordering +(e.g. `src/dirstate/` and `src/dirstate.rs` shouldn't cause issues) + + $ hg init repro + $ cd repro + $ mkdir src + $ mkdir src/dirstate + $ touch src/dirstate/file1 src/dirstate/file2 src/dirstate.rs + $ touch file1 file2 + $ hg commit -Aqm1 +#if rhg no-rust dirstate-v2 + $ hg st + ! src/dirstate/file1 (known-bad-output !) + ! src/dirstate/file2 (known-bad-output !) + ? src/dirstate/file1 (known-bad-output !) + ? src/dirstate/file2 (known-bad-output !) + expected a value, found none (known-bad-output !) + [255] +#else + $ hg st +#endif + $ cd ..