Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use installed Git command line for fetching repo status #3509

Conversation

DefaultRyan
Copy link
Member

Summary of the pull request

To support repositories that use VFS and other features specific to the Microsoft.git fork, we should use the Git command line for certain operations that confuse libgit2. This change converts the repository status to use the command line.

Detailed description of the pull request / Additional comments

When retrieving status on a Git repo that uses features like VFS, the vanilla libgit2 implementation does not handle this case correctly. Furthermore, the default behavior is to start walking the entire working directory, hydrating virtualized files, which defeats the smarts in the forked command line "git status" that knows to first check what files are still virtualized and don't need to be examined directly.

An upcoming change will also rework the individual file status properties to use a cached snapshot of this command line repo status. This will be easier to validate if I introduce these changes incrementally.

Validation steps performed

Added new unit tests for fetching "System.VersionControl.CurrentFolderStatus" to validate the retrieved values.

@DefaultRyan DefaultRyan merged commit ee89ce3 into feature/fileexplorer-sourcecontrol-integration Jul 29, 2024
4 checks passed
@DefaultRyan DefaultRyan deleted the user/defaultryan/new-status branch July 29, 2024 20:16
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.

2 participants