Skip to content

fix(explorer): ignore stale same-path selections - #515

Open
caenrique wants to merge 1 commit into
esmuellert:mainfrom
caenrique:fix/stale-same-path-selection
Open

fix(explorer): ignore stale same-path selections#515
caenrique wants to merge 1 commit into
esmuellert:mainfrom
caenrique:fix/stale-same-path-selection

Conversation

@caenrique

Copy link
Copy Markdown

Problem

Explorer callbacks only checked the selected file path before updating the diff. A file can have staged and unstaged entries with the same path, so an older callback could overwrite a newer selection and show the wrong comparison.

Solution

Track a generation for each explorer selection and reject asynchronous work when a newer selection has superseded it, including when the path is unchanged.

Testing

Added a regression test with staged and unstaged changes for the same file. It completes the two revision callbacks in reverse order and verifies that only the newer staged selection updates the view. The test fails on the parent commit with two updates and passes with the fix with one update.

Also ran the existing explorer and stale-buffer test suites.

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