Fix Git LFS issue check incorrectly reporting sparsely checked out files as not LFS tracked #1171
+117
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
GitRepositoryIssuesProviderLFS issues check was incorrectly flagging files in sparse checkout repositories as "binary files not tracked by LFS" even when those files weren't actually present locally.Problem
When using sparse checkout,
git ls-files -zreturns all files in the repository, not just the ones checked out locally. This caused the following issue:GetAllFilesFromRepository()would return all 7 files in the repoGetTextFilesFromRepository()would only find 1 text file (the only one checked out)Solution
Changed
GetAllFilesFromRepository()to usegit ls-files -t -zwhich provides file status information:Hstatus = cached/present files (included)Sstatus = skip-worktree files (excluded in sparse checkout)The method now filters out files with
Sstatus and strips the status prefix from file paths.Example
Before (incorrect):
After (correct):
Testing
Added comprehensive unit tests covering:
Sstatus)H,M,R,C,K)Fixes #715.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.