Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge milestones/M142 to releases/shipped #381

Merged
merged 364 commits into from
Oct 16, 2018
Merged

Conversation

jrbriggs
Copy link
Member

@jrbriggs jrbriggs commented Oct 12, 2018

Release Notes

New Features

  • VFS for Git will check the GitHub releases for the configured ring and prompt occasionally when running Git commands in a VFS for Git repository. To configure your ring, use the new gvfs config verb, like:
gvfs config upgrade.ring ["fast", "slow", "none"]

GVFS will check in the background for an available upgrade. If one is available, a message will be shown periodically to the user in the post-command hook to run gvfs upgrade to install the new version.

In the future, we will automatically upgrade as new bits become available in the configured ring, eliminating the need to run gvfs upgrade to install.

Performance Improvements

  • Upgraded to Git 2.19. This version brings with it the following performance improvements:
    • Improvements to unpack_trees to speed up checkout, merge, reset, rebase.
  • Improvements to compact and maintain the ModifiedPaths.dat database to help mitigate the problem of command perf degrading over time in an enlistment.

General Improvements

  • A couple of fixes for using VS Code on top of VFS for Git.
  • Other perf and reliability fixes.

Includes the following PRs:

Merge pull request #373 Update Git to include tracing and fix for untracked files
Merge pull request #362 from kewillford/check_ignore
Merge pull request #375 from nickgra/ProfilingBuild
Merge pull request #368 Mac: Handle projection changes where git deletes folders that are still in the projection
UpgradeVerb cleanups for release
Merge pull request #350 Windows: Add delay and retry to attributes check in ExpandedFileAttributesAreUpdated
Merge pull request #353: Make GVFS.Upgrader rely on GVFS.cs.props
Merge pull request #326 GitProcess: allow GIT_TRACE to point to full path
Merge pull request #335 from jeschu1/repair_functional_tests
Merge pull request #352 from pmj/fileops-on-allowed-filesystems
Merge pull request #281 from pmj/performance-tracing
Merge pull request #322 from pmj/virt-root-refactor
Upgrade verb for manually installing new product release
Merge pull request #343: Fix handling of multiple sequential messages
Merge pull request #339: Pass all required components to vswhere in BuildGVFSForWindows.bat
Merge pull request #344 Mac: Update MoveAndOverwriteFile to use native API
Merge pull request #287 from kyle-rader/chore/add-mac-build-steps
Merge pull request #334 Mac: Prevent double hydration and directory expansion
Merge pull request #336 SecondCloneSucceedsWithMissingTrees: Attempt 2
Merge pull request #329 from jeschu1/cacheserverurl
Merge pull request #327 from jeschu1/repourl_fix
Merge pull request #331 Remove SharedCacheTests.SecondCloneSucceedsWithMissingTrees
Merge pull request #313 CloneVerb: Force download of commit and trees on failed initial checkout
Merge pull request #324 Windows: Use a faster comparison when enumeration filter strings don't have wildcards
Merge pull request #325 Mac: Update MirrorProvider to support symbolic links
Merge pull request #308 Remove the entries with parent folders in the modified paths database when mounting
Merge pull request #298 Mac: Support projecting symbolic links
Merge pull request #314 Check modified paths for parent directories before adding
Merge pull request #301 from jeschu1/add_config
Merge pull request #318 from jrbriggs/fix-badges
Merge pull request #272 Recursively expand directories before delete and enable folder rename functional tests
Merge pull request #310 Add wait for background operations to complete in modified paths test
Merge pull request #307: Fix a flaky test involving the background prefetch thread
Merge pull request #299: Fix typo in ServiceVerb help text
Merge pull request #207 Remove temp paths from ModifiedPathsDatabase
Merge pull request #280 Catch and log exceptions thrown by TryPrepareFolderForCallbacks
Merge pull request #259: Tweak NamedPipe protocol (fix #142)
Merge pull request #288 from nickgra/mirrorProviderReadOnly
Merge pull request #270. Mac: Fix missing files due to auth cache
Merge pull request #279 Make LaunchPrefetchJobIfIdle thread safe and update it to exit when unhandled exceptions occur
Merge pull request #266 fUpdate PowerShellRunner to support hard link creation and enable more functional tests on Mac
Merge pull request #261 Clean up code that was referring to sparse-check our always_exclude
Merge pull request #265 Update readme to include additional build badges
Merge pull request #267 Mac: Prevent deletes of the index by non-git processes and enable related functional tests
Merge pull request #258 Remove Windows specific code from UpdatePlaceholderTests and enable tests on Mac
Merge pull request #260 Don't update ModifiedPaths.dat for hard links created outside of repo
Merge pull request #239 Mac: Support projection changes that add new files and delete folder
Merge pull request #253. Fix console logging typo in MirrorProvider.
Merge pull request #244: Fixed a bug that was preventing clone from running prefetch and mount on MacOS
Merge pull request #220 Mac: Support basic projection changes and re-categorize functional tests
Merge pull request #218 Add EnlistmentId and MountId to ETW data for correlation
Merge pull request #217: RepoRegistry: Properly log error from TryGetNormalizedPath
Merge pull request #213 Add Mac specific FileBasedLock implementation
PR #212: Added a multithreaded hydration functional test
Merge pull request #208 Update to ProjFS version 2018.823.1
Merge pull request #203 Hardlink notifications on Mac & Windows and rename notifications on Mac
Merge pull request #191 Mac: New file created notification
Merge pull request #199: Update name of file that indicates installation version
Merge pull request #166 Update git version to 2.18.0.gvfs.1.26.gf61ade4
Merge pull request #186 from kyle-rader/bug/fastfetch-force-checkout-test-failure
Merge pull request #177 from pmj/mac-kext-log-improvements
Merge pull request #181 Mac: Add PreDelete Notification
Merge pull request #188: Extract the logic to schedule post-prefetch job to its own function
Merge pull request #184: Centralize business logic for starting background prefetch.
Merge pull request #172: GitStatusCache: fix race condition in test setup
Merge pull request #159 from kyle-rader/feature/fast-fetch-force-flag
Merge pull request #167 from nickgra/gitprbuild
Merge pull request #179 Fix test reliability issues with checks in GetObjectRoot
Merge PR #173: Add FileOp specific ShouldHandleFileOpEvent helper to kext
Add build badges for Windows and Mac CI builds
Merge pull request #157: Fix issues that lead to problems with unmounting a repository
Merge pull request #165: VirtualFileSystemHook: ensure string is properly null terminated
Merge pull request #154 from nickgra/java8Fix
Merge pull request #160 from sanoursa/copyright
Merge pull request #163 from derrickstolee/bug162
Merge pull request #158 from sanoursa/log-improvements
Merge pull request #153 from kewillford/fix_mac_functionaltests
Merge pull request #156 from wilbaker/users/wilbaker/mac_file_modified_notification

wilbaker and others added 30 commits August 29, 2018 15:39
…categorize functional tests

Mac: Support basic projection changes and re-categorize functional tests
…t during clone talks to the installed service, not the test instance.
wilbaker and others added 16 commits October 10, 2018 10:16
…tory to return a more specific error message
…tes folders that are still in the projection

Mac: Handle projection changes where git deletes folders that are still in the projection
Mac: Update build scripts to handle new Profiling configuration
Add check-ignore and check-attr to commands not needing lock
…racked files

Update the package for GitForWindows to include tracing information.

Includes the following Git PRs:

* [36 Avoid `sane_execvp` in `git rebase` and `git stash`](microsoft/git#36)
* [34 Add Trace2 regions to 'pack-objects'](microsoft/git#34)
* [28 Trace2 base plus GVFS extensions](microsoft/git#28)
* [33 virtualfilesystem: check if directory is included](microsoft/git#33)
* [31 Revert "gvfs: add a perf test for reading the index"](microsoft/git#31)
* [32 compat/poll: prepare for targeting Windows Vista](microsoft/git#32)
* [22 Enable the filesystem cache (fscache) in refresh_index()](microsoft/git#22)
* [27 virtualfilesystem: fix bug with symlinks being ignored](microsoft/git#27)
* [23 Unpack trees with cache tree gvfs](microsoft/git#23)
* [15 virtualfilesystem: don't run the virtual file system hook if the index has been redirected](microsoft/git#15)
* Includes Git 2.19.0.

This also includes VFS for Git updates from Kevin Willford's work:

**Fix missing untracked files when created in subfolder**

Add to the test to create multiple level of folders and files in those folder to make sure they show up as untracked files.

Update the git for windows version that has the fix.

Fixes #358
@jrbriggs
Copy link
Member Author

Depends on #383

GVFS/GVFS.Common/Git/GitVersion.cs Show resolved Hide resolved
GVFS/GVFS.Platform.Windows/WindowsPlatform.cs Show resolved Hide resolved
GVFS/GVFS.Platform.Mac/MacPlatform.cs Show resolved Hide resolved
Copy link
Contributor

@sanoursa sanoursa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did a quick pass over Windows product code only, focusing on deployment, environment, and UX issues. I have not had a chance test anything here but noted a couple of areas that I would give some manual testing attention.

GVFS/GVFS.Common/InstallerPreRunChecker.cs Show resolved Hide resolved
GVFS/GVFS.Mount/InProcessMountVerb.cs Show resolved Hide resolved
GVFS/GVFS.Mount/InProcessMountVerb.cs Show resolved Hide resolved
GVFS/GVFS.Hooks/Program.cs Show resolved Hide resolved
GVFS/GVFS.Platform.Windows/WindowsPlatform.cs Show resolved Hide resolved
GVFS/GVFS.Service/GvfsService.cs Show resolved Hide resolved
GVFS/GVFS/CommandLine/CloneVerb.cs Show resolved Hide resolved
GVFS/GVFS/CommandLine/DiagnoseVerb.cs Show resolved Hide resolved
GVFS/GVFS/CommandLine/LogVerb.cs Show resolved Hide resolved
@sanoursa
Copy link
Contributor

One other question. I just noticed this in the release notes: Optional built-in stash and rebase. Opt in via git config --global rebase.useBuiltin true and git config --global stash.useBuiltin true. Have we ever tried running our functional tests with these flags on?

@derrickstolee
Copy link
Contributor

@sanoursa I just created #386 to test this.

@jrbriggs jrbriggs merged commit 878a589 into releases/shipped Oct 16, 2018
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.