Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

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 requested review from dhoehna and ssparach July 29, 2024 19:30
@DefaultRyan DefaultRyan merged this pull request into feature/fileexplorer-sourcecontrol-integration Jul 29, 2024
@DefaultRyan DefaultRyan deleted the user/defaultryan/new-status branch July 29, 2024 20:16
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants