check-case-conflict reports false positives for case-only renames in ref-scoped checks
#1176
Replies: 2 comments
Follow-up observationAfter changing the case-conflict step to inspect the current tracked tree, the case check passes during the ref-scoped pre-push run. However, the same stale deleted paths are still passed to the lint step. First, On a subsequent pre-push attempt, the ref-scoped lint invocation caused tsgolint to panic: The full-tree checks pass independently: This suggests the issue is broader than |
|
Confirmed: this is a shared libgit2 ref-scoped file-selection bug, not an issue specific to The libgit2 backend was using I opened #1177 to skip Until a release containing the fix is available, I did not find hk joining file arguments with commas: shell templates quote and space-separate AI-assisted — Tool: Codex; model: unavailable/unavailable; version: unavailable. |
Uh oh!
There was an error while loading. Please reload this page.
Description
hk checkreports a false case conflict for case-only renames during ref-scoped checks, even though the resulting Git tree contains only one path.For example:
The ref diff contains the old path as deleted and the new path as added, but the case-conflict step receives both path names and reports them as simultaneous files.
Environment
Reproduction
With a branch containing a case-only rename, run:
The check reports:
An equivalent full-tree check passes:
Expected behavior
Case-only renames should be treated as a single rename, or deleted paths should be excluded before running the case-conflict check. Alternatively, the check could inspect the resulting tracked tree rather than the raw ref-diff path list.
All reactions