Skip to content

feat: Allow config cache for microsoft/git 2.53.0.vfs.0.1+#2296

Merged
mjcheetham merged 1 commit intogit-ecosystem:mainfrom
derrickstolee:config-list-vfs
Mar 18, 2026
Merged

feat: Allow config cache for microsoft/git 2.53.0.vfs.0.1+#2296
mjcheetham merged 1 commit intogit-ecosystem:mainfrom
derrickstolee:config-list-vfs

Conversation

@derrickstolee
Copy link
Contributor

@derrickstolee derrickstolee commented Mar 18, 2026

This is a small modification on top of #2268 that updates the Git version check to allow using the cached list of config values when using the latest microsoft/git release.

The 2.53.0.vfs.0.1 (and later) releases have microsoft/git#863 which fast-tracked the upstream Git feature that enables this behavior.

Getting a GCM release with this version check will allow us to dogfood this performance feature.

I expect that we'd want to release GCM with this feature and have users manually install GCM from the GitHub releases page instead of waiting for a new microsoft/git release that bundles it.

I have run the test suite with this branch with microsoft/git v2.53.0.vfs.0.2 installed. I also tested by adding some thrown exceptions in the logic that only activates when the Git version check works, and that proved that the test suite does cover these cases when the right Git version exists.

Context:
The config cache version gate requires Git 2.54.0+ because that
is when upstream Git will include the fix for 'git config list
--type=<X>'. However, the microsoft/git fork may fast-track this
fix into a 2.53.0.vfs.0.1 release, allowing users of Git for
Windows (VFS-enabled builds) to benefit from the cache sooner.

Justification:
The microsoft/git fork uses version strings like
'2.53.0.vfs.0.1' where the '.vfs.' marker distinguishes it from
upstream Git. GitVersion parsing stops at the non-integer 'vfs'
component, so a simple numeric comparison would treat this as
2.53.0 and disable caching. We need an additional check that
recognizes VFS builds and compares their suffix version.

The base version (2.53.0) and VFS suffix (0.1) are checked
separately, allowing any future 2.53+ VFS build with the fix
to also benefit. Upstream 2.54.0+ continues to pass the existing
numeric check without hitting the VFS path.

Implementation:
Added SupportsConfigListType() helper that first checks the
upstream minimum (2.54.0), then looks for '.vfs.' in the original
version string. For VFS builds, it parses the base version and
VFS suffix independently and checks both against their respective
minimums (2.53.0 and 0.1).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@derrickstolee derrickstolee requested a review from a team as a code owner March 18, 2026 12:55
@mjcheetham mjcheetham enabled auto-merge March 18, 2026 12:59
@mjcheetham mjcheetham merged commit ee73630 into git-ecosystem:main Mar 18, 2026
10 checks passed
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