Skip to content

Commit 901ec95

Browse files
Merge pull request #1686: [Release] Milesone M174
Major Updates ----------------- * Comes with Git for Windows 2.28.0 * Previous builds were not including fully-signed DLLs. This is now fixed. Pull Requests --------------- * #1672: ProductUpgrader: be extra careful about a copy loop * #1674: Config: disable status.submoduleSummary * #1675: PreCommandHook: don't lock pack-objects * #1676: Update Git to v2.27.0.vfs.1.0 * #1679: BuildGVFSForWindows.bat: use nuget on PATH * #1683: GVFS.SignFiles.csproj: include more DLLs for signing * #1685: minor path comparison fixup in ProductUpgrader * #1682: Update Git to v2.28.0
2 parents 696709a + 1981692 commit 901ec95

6 files changed

Lines changed: 27 additions & 5 deletions

File tree

GVFS/GVFS.Build/GVFS.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<PropertyGroup Label="Parameters">
55
<GVFSVersion>0.2.173.2</GVFSVersion>
6-
<GitPackageVersion>2.20200622.2</GitPackageVersion>
6+
<GitPackageVersion>2.20200728.1</GitPackageVersion>
77
</PropertyGroup>
88

99
<PropertyGroup Label="DefaultSettings">

GVFS/GVFS.Common/ProductUpgrader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ public virtual bool TrySetupUpgradeApplicationDirectory(out string upgradeApplic
183183
// directory causes a cycle(at some point we start copying C:\Program Files\GVFS\ProgramData\GVFS.Upgrade
184184
// and its contents into C:\Program Files\GVFS\ProgramData\GVFS.Upgrade\Tools). The exclusion below is
185185
// added to avoid this loop.
186-
HashSet<string> directoriesToExclude = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
186+
HashSet<string> directoriesToExclude = new HashSet<string>(GVFSPlatform.Instance.Constants.PathComparer);
187187

188188
string secureDataRoot = GVFSPlatform.Instance.GetSecureDataRootForGVFS();
189189
directoriesToExclude.Add(secureDataRoot);

GVFS/GVFS.Hooks/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ private static bool ShouldLock(string[] args)
347347
case "merge-base":
348348
case "multi-pack-index":
349349
case "name-rev":
350+
case "pack-objects":
350351
case "push":
351352
case "remote":
352353
case "rev-list":
@@ -362,7 +363,7 @@ private static bool ShouldLock(string[] args)
362363
return false;
363364

364365
/*
365-
* There are several git commands that are "unsupoorted" in virtualized (VFS4G)
366+
* There are several git commands that are "unsupported" in virtualized (VFS4G)
366367
* enlistments that are blocked by git. Usually, these are blocked before they acquire
367368
* a GVFSLock, but the submodule command is different, and is blocked after acquiring the
368369
* GVFS lock. This can cause issues if another action is attempting to create placeholders.

GVFS/GVFS.SignFiles/GVFS.SignFiles.csproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@
4848
$(BuildOutputDir)\GVFS.VirtualFileSystemHook.Windows\bin\$(Platform)\$(Configuration)\GVFS.VirtualFileSystemHook.exe;
4949
$(BuildOutputDir)\GVFS.PostIndexChangedHook.Windows\bin\$(Platform)\$(Configuration)\GVFS.PostIndexChangedHook.exe;
5050
$(BuildOutputDir)\GVFS.Upgrader\bin\$(Platform)\$(Configuration)\net461\GVFS.Upgrader.exe;
51-
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.exe;">
51+
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.exe;
52+
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.Common.dll;
53+
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.GvFlt.dll;
54+
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.Platform.Windows.dll;
55+
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.Virtualization.dll;">
5256
<Authenticode>Microsoft400</Authenticode>
5357
<InProject>false</InProject>
5458
</FilesToSign>

GVFS/GVFS/CommandLine/GVFSVerb.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,12 @@ public static bool TrySetRequiredGitConfigSettings(Enlistment enlistment)
300300

301301
// Configure git to use our serialize status file - make git use the serialized status file rather than compute the status by
302302
// parsing the index file and going through the files to determine changes.
303-
{ "status.deserializePath", gitStatusCachePath }
303+
{ "status.deserializePath", gitStatusCachePath },
304+
305+
// The GVFS Protocol forbids submodules, so prevent a user's
306+
// global config of "status.submoduleSummary=true" from causing
307+
// extreme slowness in "git status"
308+
{ "status.submoduleSummary", "false" },
304309
};
305310

306311
if (!TrySetConfig(enlistment, requiredSettings, isRequired: true))

docs/troubleshooting.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,18 @@ will prompt you for upgrade using a notification. To check manually, run
2222
`gvfs upgrade` to see if an upgrade is available. Run `gvfs upgrade --confirm`
2323
to actually perform the upgrade, if you wish.
2424

25+
### Upgrade fails with
26+
27+
**Symptom:** `gvfs upgrade` fails with the following error:
28+
29+
> ERROR: Could not launch upgrade tool. File copy error - The specified path, file name, or both are too long"
30+
31+
**Fix:** There is a known issue with VFS for Git v1.0.20112.1 where the
32+
`gvfs upgrade` command fails with a long-path error. The root cause is a
33+
[recursive directory copy](https://github.com/microsoft/VFSForGit/pull/1672)
34+
that loops the contents of that directory into the copy and it never ends.
35+
The only fix is to [manually upgrade to version v1.0.20154.3](https://github.com/microsoft/VFSForGit/releases/tag/v1.0.20154.3).
36+
2537
Common Issues
2638
-------------
2739

0 commit comments

Comments
 (0)