* Switched over to use the Windows Projected File System (ProjFS) optional feature on RS4 and later. ProjFS is the new name for the GvFlt driver and its associated user mode library.
* The local file size cache was migrated from ESENT to SQLite
* Git commands are now allowed to delete an empty directory
* Many other reliability improvements in interactions between GVFS and the file system, and between GVFS and git
Perf improvements:
* Better memory management in git, creating a savings of up to half a second on commands that parse the index
* Added a new mutli-pack index file to git, allowing it to become much more efficient at finding an object when there are a large number of local packfiles
* Added a git config setting to disable the calculations for detecting force pushes during 'git fetch' and 'git pull'. That calculation can take 10's of seconds on a large graph, and users can now opt out of it.
* Due to the transition to SQLite, the file sizes cache can now live in the volume-wide .gvfsCache folder and be shared by multiple repos, causing fewer round trips to the server while enumerating files
* The post-command step to update placeholder files now batches its size requests to the server, resulting in significant speedups in situations where many placeholder files needed to be updated
* The client will now also query the /gvfs/sizes endpoint on a cache server that implements that endpoint, reducing the latency on those requests even further
* Sped up GVFS's parsing of the git index, shaving off 2-3 seconds for a large index file