Skip to content

Conversation

tyrielv and others added 22 commits June 27, 2025 13:04
Prefetch in background when cloning if pack indexes are not trusted
- limit to once per 5 minutes
- disable if any prefetch of commit graph has already succeeded
window-2019 agent has been deprecated and is no longer available.
The newer agents don't include support for .NET Framework 4.6.1 or the Windows SDK that the native projects targeted.
I tried some workarounds to install support for them as part of the action YML, but failed.

Newer versions of .NET Framework are available on the agent images, but 4.7.2 and later start failing one of the functional tests.
So I've updated the projects to target .NET Framework 4.7.1 and the latest Windows SDK.
Update to windows-2025, upgrade to .NET 4.7.1
Add support for parsing Git versions that include a release candidate
'tag' such as 2.51.0-rc0, which will have VFS version strings like:
"2.51.0-rc0.vfs.0.0".

Signed-off-by: Matthew John Cheetham <[email protected]>
Drop unused (except by tests) methods for parsing the Git installer file
name to extract a version number. The installer file name in the tests
was out-of-date anyway (no longer contains "gvfs").

Signed-off-by: Matthew John Cheetham <[email protected]>
Improved Git version parsing to support release candidates
Stop creating and uploading (for the functional tests) NuGet packages
for the GVFS.Installers project. We no longer maintain the packages:

* GitForWindows.GVFS.Installer
* GitForWindows.GVFS.Portable

Signed-off-by: Matthew John Cheetham <[email protected]>
Download the Microsoft Git installers from GitHub releases via the `gh`
CLI tool. The installers (both portable and Inno Setup based) are
included in the Installers_${{ matrix.configuration }} build artifact
that is consumed by the functional test jobs.

Signed-off-by: Matthew John Cheetham <[email protected]>
Install the correct version of Microsoft Git in the functional tests for
the OS architecture, and print more OS/CPU information for good measure.

Signed-off-by: Matthew John Cheetham <[email protected]>
Let's use the ARM64 Windows images (currently in public preview) on
GitHub hosted runners to run the functional tests on ARM.

VFS for Git is still only built for x86_64, but we do now include a
natively compiled Git for ARM64 - so let's exercise that!

Signed-off-by: Matthew John Cheetham <[email protected]>
In preparing to accounting for the "You are in a partially-hydrated
checkout with %d% of tracked files present" message that was added in
Microsoft Git v2.XX.Y, let's refactor the existing output filtering
(which is so far only done for `stderr`) into its own method.

Signed-off-by: Matthew John Cheetham <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
There are tests that find multi-line needles in the Git output's
haystack. So far, those tests work on `stdout` only. We are about to
filter `stdout` using the new `FilterMessages()` method, therefore that
method must stop its current practice where it splits by newlines and
then joins using `Environment.Newline` (even if that is different from
what the input had before).

Signed-off-by: Johannes Schindelin <[email protected]>
Currently, we only filter `stderr`, but we're about to do that with
`stdout`, too, where we do not want to skip empty lines.

Signed-off-by: Johannes Schindelin <[email protected]>
Let the functional tests account for the "You are in a
partially-hydrated checkout with %d% of tracked files present" message
that was added in Microsoft Git v2.45.2.vfs.0.2.

Do this by filtering out those messages in the same way we do for the
old 'A new version of VFS for Git is available.' upgrader messages, and
the 'Waiting for %s' lock waiting message.

Note that the 'hydration' state message is printed to standard output
and not standard error as the other messages, since this is the output
from the `status` command. We filter both stdout and stderr.

Signed-off-by: Matthew John Cheetham <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
When running the functional tests locally, it is quite possible that the
`core.fsmonitor` setting is enabled globally. Let's avoid chalking that
up as a test failure.

Signed-off-by: Johannes Schindelin <[email protected]>
Download Microsoft Git from GitHub releases
@mjcheetham mjcheetham merged commit 2658b2d into releases/shipped Aug 18, 2025
15 of 16 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.

3 participants