Skip to content

status: ignore assume-unchanged submodule paths replaced by symlinks#2437

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/fix-issue-2435-in-gix-crate
Draft

status: ignore assume-unchanged submodule paths replaced by symlinks#2437
Copilot wants to merge 2 commits intomainfrom
copilot/fix-issue-2435-in-gix-crate

Conversation

Copy link
Contributor

Copilot AI commented Feb 16, 2026

gix status was reporting an untracked entry when a tracked submodule path marked --assume-unchanged was replaced by a symlink. This diverged from Git, which keeps status clean for that case.

  • What changed

    • Updated status classification in gix-dir to treat ASSUME_VALID index entries as “up-to-date” for index/disk kind resolution.
    • This prevents dirwalk from surfacing tracked assume-unchanged paths as untracked when their on-disk type differs (e.g., directory → symlink).
  • Reproduction coverage added

    • Extended make_status_repos.sh with a focused fixture:
      • repo with a committed submodule
      • submodule marked --assume-unchanged
      • submodule path replaced by a symlink
    • Added a status test asserting no emitted status items for this scenario.
  • Key implementation detail

    • Classification now gates on either UPTODATE or ASSUME_VALID:
entry.flags.intersects(
    gix_index::entry::Flags::UPTODATE | gix_index::entry::Flags::ASSUME_VALID
)

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…atus

Co-authored-by: Byron <63622+Byron@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix issue 2435 in gix crate status: ignore assume-unchanged submodule paths replaced by symlinks Feb 16, 2026
Copilot AI requested a review from Byron February 16, 2026 03:41
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.

gix status shows submodule flagged with --assume-unchanged after replacing by symlink

2 participants