Skip to content

path: fix intransitive ordering of a directory against its descendants - #4

Open
shaleh wants to merge 1 commit into
helix-editor:mainfrom
shaleh:path-ord-fix
Open

path: fix intransitive ordering of a directory against its descendants#4
shaleh wants to merge 1 commit into
helix-editor:mainfrom
shaleh:path-ord-fix

Conversation

@shaleh

@shaleh shaleh commented Jun 17, 2026

Copy link
Copy Markdown

The path comparator returned Equal when one path was a prefix of another at a separator boundary, so a directory compared equal to every file beneath it. That makes Ord intransitive: a directory equals two different descendants that do not equal each other. sort_unstable detects the broken order and panics, which showed up when many parent and child paths landed in one change set, for example copying a large tree into a watched repo.

Order the ancestor directory before its descendants instead of equal.

Fixes the issue Philipp-M reports here: helix-editor/helix#14544 (comment)

This does not appear to be OS specific. Any bulk file operation could trigger it.

The path comparator returned Equal when one path was a prefix of another at a
separator boundary, so a directory compared equal to every file beneath it.
That makes Ord intransitive: a directory equals two different descendants that
do not equal each other. sort_unstable detects the broken order and panics,
which showed up when many parent and child paths landed in one change set, for
example copying a large tree into a watched repo.

Order the ancestor directory before its descendants instead of equal.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant