Skip to content

Commit

Permalink
Merge pull request #1686: [Release] Milesone M174
Browse files Browse the repository at this point in the history
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
  • Loading branch information
derrickstolee authored Jul 28, 2020
2 parents 696709a + 1981692 commit 901ec95
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 5 deletions.
2 changes: 1 addition & 1 deletion GVFS/GVFS.Build/GVFS.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<PropertyGroup Label="Parameters">
<GVFSVersion>0.2.173.2</GVFSVersion>
<GitPackageVersion>2.20200622.2</GitPackageVersion>
<GitPackageVersion>2.20200728.1</GitPackageVersion>
</PropertyGroup>

<PropertyGroup Label="DefaultSettings">
Expand Down
2 changes: 1 addition & 1 deletion GVFS/GVFS.Common/ProductUpgrader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ public virtual bool TrySetupUpgradeApplicationDirectory(out string upgradeApplic
// directory causes a cycle(at some point we start copying C:\Program Files\GVFS\ProgramData\GVFS.Upgrade
// and its contents into C:\Program Files\GVFS\ProgramData\GVFS.Upgrade\Tools). The exclusion below is
// added to avoid this loop.
HashSet<string> directoriesToExclude = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
HashSet<string> directoriesToExclude = new HashSet<string>(GVFSPlatform.Instance.Constants.PathComparer);

string secureDataRoot = GVFSPlatform.Instance.GetSecureDataRootForGVFS();
directoriesToExclude.Add(secureDataRoot);
Expand Down
3 changes: 2 additions & 1 deletion GVFS/GVFS.Hooks/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,7 @@ private static bool ShouldLock(string[] args)
case "merge-base":
case "multi-pack-index":
case "name-rev":
case "pack-objects":
case "push":
case "remote":
case "rev-list":
Expand All @@ -362,7 +363,7 @@ private static bool ShouldLock(string[] args)
return false;

/*
* There are several git commands that are "unsupoorted" in virtualized (VFS4G)
* There are several git commands that are "unsupported" in virtualized (VFS4G)
* enlistments that are blocked by git. Usually, these are blocked before they acquire
* a GVFSLock, but the submodule command is different, and is blocked after acquiring the
* GVFS lock. This can cause issues if another action is attempting to create placeholders.
Expand Down
6 changes: 5 additions & 1 deletion GVFS/GVFS.SignFiles/GVFS.SignFiles.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,11 @@
$(BuildOutputDir)\GVFS.VirtualFileSystemHook.Windows\bin\$(Platform)\$(Configuration)\GVFS.VirtualFileSystemHook.exe;
$(BuildOutputDir)\GVFS.PostIndexChangedHook.Windows\bin\$(Platform)\$(Configuration)\GVFS.PostIndexChangedHook.exe;
$(BuildOutputDir)\GVFS.Upgrader\bin\$(Platform)\$(Configuration)\net461\GVFS.Upgrader.exe;
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.exe;">
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.exe;
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.Common.dll;
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.GvFlt.dll;
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.Platform.Windows.dll;
$(BuildOutputDir)\GVFS.Windows\bin\$(Platform)\$(Configuration)\GVFS.Virtualization.dll;">
<Authenticode>Microsoft400</Authenticode>
<InProject>false</InProject>
</FilesToSign>
Expand Down
7 changes: 6 additions & 1 deletion GVFS/GVFS/CommandLine/GVFSVerb.cs
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,12 @@ public static bool TrySetRequiredGitConfigSettings(Enlistment enlistment)

// Configure git to use our serialize status file - make git use the serialized status file rather than compute the status by
// parsing the index file and going through the files to determine changes.
{ "status.deserializePath", gitStatusCachePath }
{ "status.deserializePath", gitStatusCachePath },

// The GVFS Protocol forbids submodules, so prevent a user's
// global config of "status.submoduleSummary=true" from causing
// extreme slowness in "git status"
{ "status.submoduleSummary", "false" },
};

if (!TrySetConfig(enlistment, requiredSettings, isRequired: true))
Expand Down
12 changes: 12 additions & 0 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,18 @@ will prompt you for upgrade using a notification. To check manually, run
`gvfs upgrade` to see if an upgrade is available. Run `gvfs upgrade --confirm`
to actually perform the upgrade, if you wish.

### Upgrade fails with

**Symptom:** `gvfs upgrade` fails with the following error:

> ERROR: Could not launch upgrade tool. File copy error - The specified path, file name, or both are too long"
**Fix:** There is a known issue with VFS for Git v1.0.20112.1 where the
`gvfs upgrade` command fails with a long-path error. The root cause is a
[recursive directory copy](https://github.com/microsoft/VFSForGit/pull/1672)
that loops the contents of that directory into the copy and it never ends.
The only fix is to [manually upgrade to version v1.0.20154.3](https://github.com/microsoft/VFSForGit/releases/tag/v1.0.20154.3).

Common Issues
-------------

Expand Down

0 comments on commit 901ec95

Please sign in to comment.