-
Notifications
You must be signed in to change notification settings - Fork 451
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/M158 to releases/shipped #1515
Commits on Jul 1, 2019
-
Now, that local cache path defaults to `$HOME/.gvfsCache`, there's no need to specify --local-cache-path explicitly.
turbonaitis authoredJul 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 2fb3368 - Browse repository at this point
Copy the full SHA 2fb3368View commit details
Commits on Jul 18, 2019
-
Native notifications can now have actions associated with them. When user clicks on the action button on a notification bubble, VFSForGit will run a Command in response. Example: Mount_Failure notification can specifiy the gvfs command "gvfs mount <path>" as its associated action. Actionable notifications also have an actionTitle, which get displayed as text in a Button control on the Notification bubble. Other details - Commands are run using Terminal app. - Terminal is launched using Applescript. - Only UpgradeAvailable and Mount_Failure notifications are actionable now. - VFSForGitNotification class now confirms to NSCoding protocol. VFSForGitNotification object holds details of the notification including associated commands. It is archived and sent to the OS notification center. When user clicks the notification bubble, the archived VFSForGitNotification is retrieved from the native notification, its associated Command is read and executed.
Configuration menu - View commit details
-
Copy full SHA for 6e5e390 - Browse repository at this point
Copy the full SHA 6e5e390View commit details
Commits on Jul 30, 2019
-
Merge pull request #1303: GVFS Health Feature
Initial cut of Health Feature
Configuration menu - View commit details
-
Copy full SHA for 4a4d9bb - Browse repository at this point
Copy the full SHA 4a4d9bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 419f782 - Browse repository at this point
Copy the full SHA 419f782View commit details -
Configuration menu - View commit details
-
Copy full SHA for 880cfd6 - Browse repository at this point
Copy the full SHA 880cfd6View commit details
Commits on Jul 31, 2019
-
Setup.iss: use {sys} variable when calling sc.exe
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 7ea06cc - Browse repository at this point
Copy the full SHA 7ea06ccView commit details -
Increasing precision of timestamps being logged
Tomas Urbonaitis committedJul 31, 2019 Configuration menu - View commit details
-
Copy full SHA for 924fc1e - Browse repository at this point
Copy the full SHA 924fc1eView commit details -
Merge pull request #1393: Setup.iss: use {sys} variable when calling …
…sc.exe The [InnoSetup constants documentation](http://www.jrsoftware.org/ishelp/index.php?topic=consts) lists `{sys}` as the way to expand to what is typically `C:\Windows\System32`. This _should_ reduce issues with `PATH` modifications or system drive swaps. I manually tested upgrade to see that these paths were expanded correctly.
Configuration menu - View commit details
-
Copy full SHA for d0336e0 - Browse repository at this point
Copy the full SHA d0336e0View commit details -
Configuration menu - View commit details
-
Copy full SHA for a0656ed - Browse repository at this point
Copy the full SHA a0656edView commit details -
No longer set PATH for git process and remove use of gvfs hooks root
The git process was launched using a PATH environment variable with the gvfs hooks path to make sure that when a path in the repo was included in the user's PATH environment variable that it would only search outside the repo. This was when the code was using git cat-file to hydrate files and searching for gvfs hooks would cause it to hydrate files which would cause it to search for hooks and it would be in a loop. This is no longer the case, the code is using libgit2 and the hooks are not called. Since the gvfs hooks root was only used for setting the PATH for the git process, all references to it can be removed.
Kevin Willford committedJul 31, 2019 Configuration menu - View commit details
-
Copy full SHA for e9cb9e6 - Browse repository at this point
Copy the full SHA e9cb9e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for abbe0de - Browse repository at this point
Copy the full SHA abbe0deView commit details -
- Add comments where needed - Stop creating BlobSizeConnections in OnEnumerateDirectory - Remove populateSizes parameter from GetProjectedItems
Configuration menu - View commit details
-
Copy full SHA for 37a1f6c - Browse repository at this point
Copy the full SHA 37a1f6cView commit details
Commits on Aug 1, 2019
-
Merge pull request #1388: Proper error message for 'git gui' on Mac
Proper error message for 'git gui' on Mac
Configuration menu - View commit details
-
Copy full SHA for c277178 - Browse repository at this point
Copy the full SHA c277178View commit details -
Configuration menu - View commit details
-
Copy full SHA for cbf6350 - Browse repository at this point
Copy the full SHA cbf6350View commit details -
Add SetupFixture for teardown to get the test results at the end
Currently the output for running functional tests put the service logs and the run times for each of the tests at the end after the actual test summary results. This makes finding the actual results of failures harder to find since you have to scroll up an indeterminate amount to get to the results. This change will move the test run summary to the bottom of the output. So you can go straight to the bottom to see any failures.
Kevin Willford committedAug 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 751f5ee - Browse repository at this point
Copy the full SHA 751f5eeView commit details -
Merge pull request #1394 Increasing precision of timestamps being logged
Increasing precision of timestamps being logged
Kevin Willford authoredAug 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 1d5afb2 - Browse repository at this point
Copy the full SHA 1d5afb2View commit details -
Merge pull request #1398 Mac: Don't download file sizes as part of On…
…EnumerateDirectory Mac: Don't download file sizes as part of OnEnumerateDirectory
Configuration menu - View commit details
-
Copy full SHA for a882d4c - Browse repository at this point
Copy the full SHA a882d4cView commit details -
Merge pull request #1399 Add SetupFixture for teardown to get the tes…
…t results at the end Add SetupFixture for teardown to get the test results at the end
Kevin Willford authoredAug 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 9763355 - Browse repository at this point
Copy the full SHA 9763355View commit details -
Configuration menu - View commit details
-
Copy full SHA for 840c7ab - Browse repository at this point
Copy the full SHA 840c7abView commit details -
Merge pull request #1384: [Mac] Don't allow cloning or mounting on ca…
…se sensitive volumes [Mac] Don't allow cloning or mounting on case sensitive volumes
Configuration menu - View commit details
-
Copy full SHA for eae30e8 - Browse repository at this point
Copy the full SHA eae30e8View commit details -
Merge pull request #1308: Updating README.md
Now, that local cache path defaults to $HOME/.gvfsCache, there's no need to specify --local-cache-path explicitly.
Configuration menu - View commit details
-
Copy full SHA for 409adda - Browse repository at this point
Copy the full SHA 409addaView commit details -
GeneratePrjFSXCConfig.sh should exit early if it fails to determine B…
…UNDLE_VERSION. Additionally, make BUNDLE_VERSION Major.Minor
Configuration menu - View commit details
-
Copy full SHA for f58718b - Browse repository at this point
Copy the full SHA f58718bView commit details -
Kevin Willford committed
Aug 1, 2019 Configuration menu - View commit details
-
Copy full SHA for ed150e2 - Browse repository at this point
Copy the full SHA ed150e2View commit details -
Merge pull request #1392 Mac: Add version information to kext and Prj…
…FS logging daemon Mac: Add version information to kext and PrjFS logging daemon
Configuration menu - View commit details
-
Copy full SHA for e315c6c - Browse repository at this point
Copy the full SHA e315c6cView commit details
Commits on Aug 2, 2019
-
Merge pull request #1351 No longer set PATH for git process and remov…
…e use of gvfs hooks root No longer set PATH for git process and remove use of gvfs hooks root
Kevin Willford authoredAug 2, 2019 Configuration menu - View commit details
-
Copy full SHA for 34ed486 - Browse repository at this point
Copy the full SHA 34ed486View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a45471 - Browse repository at this point
Copy the full SHA 2a45471View commit details -
Implemented SubDirectoryInfo object
Some organizational improvements to the code, since the SubDirectoryInfo object has named fields. Sub directory list now shows the fraction of files which are hydrated, sorting remains by number of hydrated files Added unit tests for the newly available information, the total number of files per sub directory.
Configuration menu - View commit details
-
Copy full SHA for 7b46f37 - Browse repository at this point
Copy the full SHA 7b46f37View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27ef05b - Browse repository at this point
Copy the full SHA 27ef05bView commit details -
Merge pull request #1363: Handle corrupt objects on Mac
Handle corrupt objects on Mac
Configuration menu - View commit details
-
Copy full SHA for aa786f9 - Browse repository at this point
Copy the full SHA aa786f9View commit details
Commits on Aug 5, 2019
-
Add new interface and class for storing the include folders
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for f3527b6 - Browse repository at this point
Copy the full SHA f3527b6View commit details -
Add include folder interface to the FileSystemCallbacks constructor
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 7b52897 - Browse repository at this point
Copy the full SHA 7b52897View commit details -
Kevin Willford committed
Aug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 0800b48 - Browse repository at this point
Copy the full SHA 0800b48View commit details -
Update projection to use the included folders
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 73a5772 - Browse repository at this point
Copy the full SHA 73a5772View commit details -
Force untracked files to be shown when running status for Dehydrate a…
…nd Include verbs
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for b8af57a - Browse repository at this point
Copy the full SHA b8af57aView commit details -
Add path to included folders when folder created that is in the index…
… but not in the included list
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 5ab7bcc - Browse repository at this point
Copy the full SHA 5ab7bccView commit details -
Update IncludeVerb HelpText and output for --list when there are none
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for e873b0a - Browse repository at this point
Copy the full SHA e873b0aView commit details -
Add some parenthesis to make code more readable
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 873a07e - Browse repository at this point
Copy the full SHA 873a07eView commit details -
Fix unit tests using include folders
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for ced731a - Browse repository at this point
Copy the full SHA ced731aView commit details -
Use enum for projection state for paths so it is more explicit in checks
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 2a94e1e - Browse repository at this point
Copy the full SHA 2a94e1eView commit details -
Fix ReExpanding folders when included folders are being used
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for aaf9afc - Browse repository at this point
Copy the full SHA aaf9afcView commit details -
Add and clean up functional tests for included folders
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 4e8f295 - Browse repository at this point
Copy the full SHA 4e8f295View commit details -
Add to included when folder created inline instead of on BG thread
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 57de5e9 - Browse repository at this point
Copy the full SHA 57de5e9View commit details -
Handle folder created adding to included folder for Mac
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 2f348d3 - Browse repository at this point
Copy the full SHA 2f348d3View commit details -
Adding more functional tests for included folders
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 05dbb8f - Browse repository at this point
Copy the full SHA 05dbb8fView commit details -
Fix issues when a file is read or modified before changing included f…
…olders
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 92ce5cc - Browse repository at this point
Copy the full SHA 92ce5ccView commit details -
Add comments for more information
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 0039614 - Browse repository at this point
Copy the full SHA 0039614View commit details -
Check return code when trying to add new folder to include
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for b8b6ca2 - Browse repository at this point
Copy the full SHA b8b6ca2View commit details -
Add different method for creating a folder for windows and mac
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for ec64afb - Browse repository at this point
Copy the full SHA ec64afbView commit details -
Default include verb to show list of folders when no arguments are pa…
…ssed
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 7fa910d - Browse repository at this point
Copy the full SHA 7fa910dView commit details -
Extend GitRepoTests to allow include mode (#1331)
* Extend GitRepoTests to allow include mode The GitRepoTests can be initialized with a ValidateWorkingTree mode that is currently a boolean. If enabled, we will add extra checks to make sure the working tree of our virtual enlistment matches the enlistment from a vanilla Git repo. To extend this to the "include" mode, we need to first modify this boolean into an enum and add it as an extra option. Second, we need to be very careful about what we are comparing. We will no longer virtualize outside of the included folders. Be careful to include files in the root directory. The functional tests can then be run with "--partial-mode" to exercise only this option, which will isolate the test failures to this setting AND keep the test suite from getting too slow. Currently, the partial mode space is probably wider than necessary and can be reduced in later iterations. This does provide _some_ coverage. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> * Use enum for passing into all tests instead of an int * Clean up functional tests file system should extensions * Rename argument to --include-mode to match the feature * Add included folders below top level
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 9728561 - Browse repository at this point
Copy the full SHA 9728561View commit details -
Some suggested cleanup for included folders (#1346)
* Add unit tests, comments, and renamed variables to make code more understandable * Update include verb to give more information to the user * Change OnFolderCreated to have an out parameter instead of return value * Add comment for when there is an EIOError and why OnFileConvertedToFull is called * Log warning when TryAddIncludedFolder gets an exception from the database * Remove isDirectory parameter from MarkDirectoryAsPlaceholder since it is not used * Rename IncludedFoldersList to GetIncludedFolders * Revert changes to the GitIndexProjection constructor * Add test for mac creating a folder and file that are excluded
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for f6cd3f5 - Browse repository at this point
Copy the full SHA f6cd3f5View commit details -
Rename include to sparse throughout the code to more closely match gi…
…t and it's sparse (#1348)
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for a6243ad - Browse repository at this point
Copy the full SHA a6243adView commit details -
* Normalize paths that are saved in the sparse table * Add comment for how the IsRecursive for a sparse folder is set * Add verification for mockCommand3 in GVFSDatabaseTests * Rename sparse test * Add some validation to sparse folder test * Rename method that validate folders to ValidateFoldersInSparseList * Add to and update the sparse tests * Add tests for various paths for the sparse verb and trim spaces
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 2f23e65 - Browse repository at this point
Copy the full SHA 2f23e65View commit details -
Add unit tests for SparseTable and pull out some common code to base …
…class (#1379)
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 4264554 - Browse repository at this point
Copy the full SHA 4264554View commit details -
Use IsIncluded only on folder entries (#1345)
* Use IsIncluded only on folder entries * Add more tests for SortedFolderEntries * Add comments for better understanding of the code * Remove call to GetFolderSparseState in UpdateOrDeleteFilePlaceholder
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 67b89b0 - Browse repository at this point
Copy the full SHA 67b89b0View commit details -
Cleanup Sparse code from PR feedback
Kevin Willford committedAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for 9586d47 - Browse repository at this point
Copy the full SHA 9586d47View commit details -
Merge pull request #1330 Add sparse verb for allowing projection of o…
…nly specific folders Add sparse verb for allowing projection of only specific folders
Kevin Willford authoredAug 5, 2019 Configuration menu - View commit details
-
Copy full SHA for a1053d2 - Browse repository at this point
Copy the full SHA a1053d2View commit details -
use WorkingDirectoryBackingRoot in RepairJobs
Repair jobs run while the GVFS enlistment is not mounted, which on Linux requires us to use the backing root in order to access the .git contents.
Configuration menu - View commit details
-
Copy full SHA for 93f9811 - Browse repository at this point
Copy the full SHA 93f9811View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6cd45c3 - Browse repository at this point
Copy the full SHA 6cd45c3View commit details -
Configuration menu - View commit details
-
Copy full SHA for f1c7422 - Browse repository at this point
Copy the full SHA f1c7422View commit details -
Mac ProjFS Kext: Minor macro tweak
This protects the vnodeType parameter of the KextLog_VnodeOp() macro from bugs due to operator precedence in expanded expressions.
Configuration menu - View commit details
-
Copy full SHA for 0975125 - Browse repository at this point
Copy the full SHA 0975125View commit details -
Mac ProjFS kext: Adds system for registering processes for offline ro…
…ot I/O This change is in preparation for enabling I/O protection for offline virtualization roots. * Processes which must access the contents of offline roots, such as VFSForGit's own, may register with the kext to be granted permission by opening a new type of user client connection to the kext's service. There is no restriction on this mechanism, it simply prevents accidental untracked changes. * There are new unit tests covering the new functionality.
Configuration menu - View commit details
-
Copy full SHA for f3e964d - Browse repository at this point
Copy the full SHA f3e964dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2494534 - Browse repository at this point
Copy the full SHA 2494534View commit details -
Mac ProjFS kext: Preparation for denying access to offline roots.
This change rearranges the TryGetVirtualizationRoot() and HandleVnodeOperation() logic to include decision points to deny or allow certain file operations if the root's provider is offline, to protect the integrity of the repository. All the new logic is added, but operations are not yet denied. Some new tests for HandleVnodeOperation are also added to cover the new code paths.
Configuration menu - View commit details
-
Copy full SHA for 8ecfa36 - Browse repository at this point
Copy the full SHA 8ecfa36View commit details -
Configuration menu - View commit details
-
Copy full SHA for 06f173a - Browse repository at this point
Copy the full SHA 06f173aView commit details -
Mac ProjFS kext: Denies access when provider does not respond
If for some reason the provider does not respond to a kernel request originating from an authorisation check callback, we now deny that authorisation.
Configuration menu - View commit details
-
Copy full SHA for a30c92b - Browse repository at this point
Copy the full SHA a30c92bView commit details -
Mac ProjFS kext: Denies write access to empty files in offline root
Writes of any kind to empty files in an offline root should be denied to prevent data loss when the provider comes back online. File deletions meanwhile must be allowed so that the user may recursively delete the entire repository even if it is not mounted. A test has been added to verify that write access to empty files is indeed denied.
Configuration menu - View commit details
-
Copy full SHA for 5314a6b - Browse repository at this point
Copy the full SHA 5314a6bView commit details -
Mac ProjFS Kext: Denies write access to placeholder files in offline …
…root Placeholder (non-full) files, although hydrated, should not be modified while the provider is offline, as the provider would miss the PreConvertToFull/FileModified events. This change enforces this and updates the tests to reflect this new expected behaviour.
Configuration menu - View commit details
-
Copy full SHA for 2b377fb - Browse repository at this point
Copy the full SHA 2b377fbView commit details -
Mac ProjFS Kext: Disallows file/directory renames in offline roots
Renaming a file or directory in an offline virtualisation root should not be permitted. This change implements that functionality on OS versions which enable us to distinguish between KAUTH_VNODE_DELETE operations that are caused by a rename operation versus not. Older OSes necessarily must allow any KAUTH_VNODE_DELETE operation.
Configuration menu - View commit details
-
Copy full SHA for 82be28a - Browse repository at this point
Copy the full SHA 82be28aView commit details -
Mac ProjFS kext: Unit test for rename blocking on offline roots
This adds a unit test for disallowing file renames in offline roots on Mojave or newer, while also testing that on High Sierra, the rename is not blocked.
Configuration menu - View commit details
-
Copy full SHA for 98d117b - Browse repository at this point
Copy the full SHA 98d117bView commit details -
Mac ProjFS kext: Blocks renaming files in offline roots at the hydrat…
…ion stage This causes the offline root check to block the file renaming operation at the hydration stage for empty files. The unit test is updated to check both the empty and hydrated scenarios.
Configuration menu - View commit details
-
Copy full SHA for bf90ffa - Browse repository at this point
Copy the full SHA bf90ffaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3357459 - Browse repository at this point
Copy the full SHA 3357459View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1663653 - Browse repository at this point
Copy the full SHA 1663653View commit details -
Mac ProjFS kext: Hardcodes offline I/O process array to fixed length …
…of 128 Some reduction in code complexity, as 128 ought to be enough for anyone.
Configuration menu - View commit details
-
Copy full SHA for 975c1a3 - Browse repository at this point
Copy the full SHA 975c1a3View commit details -
Mac kext: Drop lock for allocating virtualization root array memory
Performing a blocking memory allocation while holding a lock in a vnode listener callback is not necessarily safe. (There is potential for a deadlock in low-memory situations.) When growing the virtualization root array, this was exactly what the existing code was doing. This change restructures the virtualization root insertion logic so that the lock can be dropped for allocating the larger memory block. Dropping the lock means it must be re-checked whether an insertion is necessary, which was not readily possible with the old code structure.
Configuration menu - View commit details
-
Copy full SHA for 3ab3209 - Browse repository at this point
Copy the full SHA 3ab3209View commit details -
Merge pull request #1403 Mac: Do not lookup or download file sizes wh…
…en updating placeholders Mac: Do not lookup or download file sizes when updating placeholders
Configuration menu - View commit details
-
Copy full SHA for aff5bb1 - Browse repository at this point
Copy the full SHA aff5bb1View commit details -
Stop passing around KeyValuePairs instead of data objects Update unit tests accordingly
Configuration menu - View commit details
-
Copy full SHA for 943b422 - Browse repository at this point
Copy the full SHA 943b422View commit details -
Configuration menu - View commit details
-
Copy full SHA for d4223ec - Browse repository at this point
Copy the full SHA d4223ecView commit details
Commits on Aug 6, 2019
-
Merge pull request #1415: Update Git to include octopus merge bugfix
See microsoft/git#167 for details. This package also includes a Linux installer, since we have updated the build definition since the last Git update.
Configuration menu - View commit details
-
Copy full SHA for a7df389 - Browse repository at this point
Copy the full SHA a7df389View commit details -
Merge pull request #1280 from pmj/mac-kext-resize-roots
Mac kext: Drop lock for allocating virtualization root array memory Performing a blocking memory allocation while holding a lock in a vnode listener callback is not necessarily safe. (There is potential for a deadlock in low-memory situations.) When growing the virtualization root array, this was exactly what the existing code was doing. This change restructures the virtualization root insertion logic so that the lock can be dropped for allocating the larger memory block. Dropping the lock means it must be re-checked whether an insertion is still necessary, which was not readily possible with the old code structure.
Configuration menu - View commit details
-
Copy full SHA for e547846 - Browse repository at this point
Copy the full SHA e547846View commit details -
Merge pull request #1208 from pmj/mac-kext-182-no-writes-on-offline-r…
…oots Mac ProjFS: Deny I/O on offline roots, with exceptions, part 1 This is the first stage of implementing #182 - the kext now blocks write I/O to empty or placeholder files on offline roots. I/O needs to be blocked when: 1. A message failed to deliver to the provider. 2. A process attempts to write to an empty file in an offline root (this file would subsequently be overwritten by a hydration event) 3. A process attempts to write to a placeholder (hydrated unmodified) file when the provider is offline. The file would not show up in git status and could be overwritten by a subsequent checkout/rebase/merge. 4. A process attempts to rename a file in an offline root. 5. A process attempts to read/execute an empty file in an offline root. The result of the read would be bad data, so failing with denied authorisation is preferable to letting the bad data propagate. 6. A process attempts to create files or directories in an offline root. This change implements cases 1-4. Cases 5-6 will be covered in a future change. At first glance this seems like it would be a very simple change, but in practice, some processes must be allowed unfettered access to files in offline roots. So a large part of this patch set is dedicated to implementing a system for allowing exceptions - there is a new type of IOKit user client for processes which need unrestricted access to offline roots, and this needed to be implemented all the way through from kext, via native lib, to (managed) VFS4G code proper. Next, the vnode handler, which is in the actual business of denying or allowing file access, has been expanded to allow returning different results based on whether the root's provider is offline. Finally, "deny" results are actually returned for a number of different cases - so far, this only includes writes. Even this caused some test failures, so the test process itself needs to register as an exception with unrestricted offline root access.
Configuration menu - View commit details
-
Copy full SHA for 1d9b7ae - Browse repository at this point
Copy the full SHA 1d9b7aeView commit details
Commits on Aug 7, 2019
-
add MoveIndexFileFails() functional test
On some platforms (notably Linux), we may receive only a pre-rename notification event rather than a pre-delete event, so the virtualization instance's OnPreRename() handler becomes responsible for ensuring that, outside of a GVFS lock, the .git/index file can not be renamed or renamed over. The BasicFileSystemTests.DeleteIndexFileFails() test handles the case of a true delete of .git/index, as well as platforms which deliver a pre-delete event on the source path prior to a rename action. As well, several GVFSLockTests tests such as LockPreventsRenameFromInsideWorkingTreeOnTopOfIndex() test the case of a file being renamed to .git/index, but no existing test checks for the case of .git/index being renamed to another path (although DeleteIndexFileFails() suffices on platforms which send a pre-delete event). Therefore we add an explicit MoveIndexFileFails() functional test to cover this case.
Configuration menu - View commit details
-
Copy full SHA for 0dd7284 - Browse repository at this point
Copy the full SHA 0dd7284View commit details -
Merge pull request #1421: Update Git, drop MIDX writes
This PR does two things: Updates Git to include the slow commit-graph write fix from microsoft/git#168. Also see #1420 for the M153 hotfix. Removes the multi-pack-index writes from the PostFetchStep and instead only writes the multi-pack-index during the PackfileMaintenanceStep. In order to get the most out of the step, we need to ensure we have a multi-pack-index before running the expire and repack steps. Also, we can only expire the packs from that day if they are contained in the multi-pack-index. If we agree that we should send (2) as a hotfix to the M155 release (in addition to (1), which is necessary), then I'll create a hotfix PR to that branch.
Configuration menu - View commit details
-
Copy full SHA for cd42bbd - Browse repository at this point
Copy the full SHA cd42bbdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 885fe79 - Browse repository at this point
Copy the full SHA 885fe79View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1313af0 - Browse repository at this point
Copy the full SHA 1313af0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 096226b - Browse repository at this point
Copy the full SHA 096226bView commit details -
Update the following dependencies: NUnit: 3.10.1 -> 3.12.0 NUnitLite: 3.10.1 -> 3.12.0 NUnite3TestAdapter: 3.10.1 -> 3.13.0 This update includes a fix for the following issue we have have observed in our CI builds, where tests fail with the following exception: System.InvalidOperationException: Stack empty. Which appears to be this issue #2772 in https://github.com/nunit/nunit which indicates it is fixed in NUnit 3.12.
Configuration menu - View commit details
-
Copy full SHA for 425e8cd - Browse repository at this point
Copy the full SHA 425e8cdView commit details -
Merge pull request #1416 Mac: Fix and enable remaining dehydrate func…
…tional tests Mac: Fix and enable remaining dehydrate functional tests
Configuration menu - View commit details
-
Copy full SHA for d6d7b3e - Browse repository at this point
Copy the full SHA d6d7b3eView commit details -
Merge pull request #1425: update NUnit dependencies
Update NUnit dependencies
Configuration menu - View commit details
-
Copy full SHA for 051e36f - Browse repository at this point
Copy the full SHA 051e36fView commit details
Commits on Aug 8, 2019
-
Update mac uninstall script to remove GVFS service directory
The mac uninstall script did not remove the GVFS service directory, resulting in GVFS artifacts being left around. This change updates the uninstall script to also remove the GVFS service directory. This brings the behavior of the mac uninstall script to match the Windows uninstall script in src/Scripts/UninstallGVFS.bat. One motivation for this change was that the Mac Functional test machines were gathering cruft from repeated test runs, such as the list of registered repositories in the repo-registry growing. This apparently caused the GVFS service start up time to grow, resulting in test failures.
Configuration menu - View commit details
-
Copy full SHA for 41c4d44 - Browse repository at this point
Copy the full SHA 41c4d44View commit details -
Merge pull request #1417: Update mac uninstall script to remove GVFS …
…service directory Update mac uninstall script to remove GVFS service directory
Configuration menu - View commit details
-
Copy full SHA for 09b0c7c - Browse repository at this point
Copy the full SHA 09b0c7cView commit details -
Merge pull request #1409 from Halterer/SubDirectoryInfoObject
SubDirectoryInfo Object
Configuration menu - View commit details
-
Copy full SHA for 46118a9 - Browse repository at this point
Copy the full SHA 46118a9View commit details -
Add lock around writes to SQLite database tables
Kevin Willford committedAug 8, 2019 Configuration menu - View commit details
-
Copy full SHA for 9f3cbd5 - Browse repository at this point
Copy the full SHA 9f3cbd5View commit details -
Merge pull request #1431 Add lock around writes to SQLite database ta…
…bles Add lock around writes to SQLite database tables
Kevin Willford authoredAug 8, 2019 Configuration menu - View commit details
-
Copy full SHA for 1e9c5ec - Browse repository at this point
Copy the full SHA 1e9c5ecView commit details
Commits on Aug 9, 2019
-
Allow privileged system service 'amfid' to hydrate
- When amfid is invoked to check the code signature of a library which has not been hydrated, blocking hydration would cause the launch of an application which depends on the library to fail, so amfid should always be allowed to hydrate.
Configuration menu - View commit details
-
Copy full SHA for c5c3907 - Browse repository at this point
Copy the full SHA c5c3907View commit details -
Merge pull request #1408: Include panic logs for vfs in diagnose
Include panic logs for vfs in diagnose
Configuration menu - View commit details
-
Copy full SHA for 467fdc7 - Browse repository at this point
Copy the full SHA 467fdc7View commit details
Commits on Aug 12, 2019
-
Merge pull request #1337: [Mac Kext] Remove '/System/Volumes/Data' wh…
…en only in path Remove '/System/Volumes/Data' when only in path
Configuration menu - View commit details
-
Copy full SHA for da48fb0 - Browse repository at this point
Copy the full SHA da48fb0View commit details -
Merge pull request #1436: [Mac kext] Allow privileged system service …
…'amfid' to hydrate Allow privileged system service 'amfid' to hydrate
1Configuration menu - View commit details
-
Copy full SHA for bf53ae9 - Browse repository at this point
Copy the full SHA bf53ae9View commit details -
Use default file length for MockGVFSGitObjects
Kevin Willford committedAug 12, 2019 Configuration menu - View commit details
-
Copy full SHA for b61b859 - Browse repository at this point
Copy the full SHA b61b859View commit details -
Use default content id for VirtualizerTests
Kevin Willford committedAug 12, 2019 Configuration menu - View commit details
-
Copy full SHA for 58b76f9 - Browse repository at this point
Copy the full SHA 58b76f9View commit details -
Use static placeholder version variable
Kevin Willford committedAug 12, 2019 Configuration menu - View commit details
-
Copy full SHA for 5fcb0f8 - Browse repository at this point
Copy the full SHA 5fcb0f8View commit details -
Create classes for testing the FileSystemVirtualizers
Kevin Willford committedAug 12, 2019 Configuration menu - View commit details
-
Copy full SHA for dd4cfa0 - Browse repository at this point
Copy the full SHA dd4cfa0View commit details -
Add InvokeGetFileDataCallback for tester and use in tests
Kevin Willford committedAug 12, 2019 Configuration menu - View commit details
-
Copy full SHA for 1239360 - Browse repository at this point
Copy the full SHA 1239360View commit details -
Add MacFileSystemVirtualizerTester to use for Mac tests
Kevin Willford committedAug 12, 2019 Configuration menu - View commit details
-
Copy full SHA for 6a98f69 - Browse repository at this point
Copy the full SHA 6a98f69View commit details
Commits on Aug 13, 2019
-
Use the MacFileSystemVirtualizerTester for tests
Kevin Willford committedAug 13, 2019 Configuration menu - View commit details
-
Copy full SHA for 304fb27 - Browse repository at this point
Copy the full SHA 304fb27View commit details -
Add unit tests to cover sparse in MacFileSystemVirtualizer
Kevin Willford committedAug 13, 2019 Configuration menu - View commit details
-
Copy full SHA for 1c13b1a - Browse repository at this point
Copy the full SHA 1c13b1aView commit details -
Use virtualizer tester in all the windows virtualizer unit tests
Kevin Willford committedAug 13, 2019 Configuration menu - View commit details
-
Copy full SHA for 6b068b6 - Browse repository at this point
Copy the full SHA 6b068b6View commit details
Commits on Aug 14, 2019
-
use DirectorySeparatorChar in repair job messages
Avoid hard-coding the Windows backslash path separator in messages printed by the repair jobs.
Configuration menu - View commit details
-
Copy full SHA for ec88022 - Browse repository at this point
Copy the full SHA ec88022View commit details -
avoid hydrating .git dir in cache tests on Mac
Fix the path matching in the HydrateEntireRepo() helper for MultiEnlistmentTests.SharedCacheTests, which was not excluding "{repoRoot}/.git/" paths on Mac (or Linux) due to hard-coded Windows path separators.
Configuration menu - View commit details
-
Copy full SHA for 72f20f5 - Browse repository at this point
Copy the full SHA 72f20f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for e51e823 - Browse repository at this point
Copy the full SHA e51e823View commit details -
Merge pull request #1449 Don't log errors when MaintenanceSteps fail …
…due to the repo being deleted Don't log errors when MaintenanceSteps fail due to the repo being deleted
Configuration menu - View commit details
-
Copy full SHA for 6d0e889 - Browse repository at this point
Copy the full SHA 6d0e889View commit details
Commits on Aug 15, 2019
-
Add information for when lock is release by process not owning the lock
Kevin Willford committedAug 15, 2019 Configuration menu - View commit details
-
Copy full SHA for 48ae854 - Browse repository at this point
Copy the full SHA 48ae854View commit details -
Merge pull request #1446 Cleanup virtualizer tests
Cleanup virtualizer tests
Kevin Willford authoredAug 15, 2019 Configuration menu - View commit details
-
Copy full SHA for bb2091f - Browse repository at this point
Copy the full SHA bb2091fView commit details -
Merge pull request #1450 Add information for when lock is release by …
…process not owning the lock Add information for when lock is release by process not owning the lock
Kevin Willford authoredAug 15, 2019 Configuration menu - View commit details
-
Copy full SHA for 9c733e5 - Browse repository at this point
Copy the full SHA 9c733e5View commit details
Commits on Aug 16, 2019
-
Merge pull request #1448 from github/use-dir-sep-char
[POSIX] Use platform-specific path separators in repair jobs and cache tests Avoid hard-coding the Windows backslash path separator in messages printed by the repair jobs. Per @kewillford's suggestion, we use GVFSConstants.DotGit.* properties throughout. Also fix the path matching in the HydrateEntireRepo() helper for MultiEnlistmentTests.SharedCacheTests, which was not excluding {repoRoot}/.git/ paths on Mac (or Linux) due to hard-coded Windows path separators.
Configuration menu - View commit details
-
Copy full SHA for acee8df - Browse repository at this point
Copy the full SHA acee8dfView commit details
Commits on Aug 17, 2019
-
align CmdRunner access-denied messages with others
Per PR suggestion from wilbaker, we can align the messages and tests in the AccessShouldBeDenied versions of the DeleteFile and ReplaceFile methods with those found in the other runner classes.
Configuration menu - View commit details
-
Copy full SHA for 427c3f6 - Browse repository at this point
Copy the full SHA 427c3f6View commit details -
Merge pull request #1428 from github/move-index-test
add MoveIndexFileFails() functional test On some platforms (notably Linux), we receive only a pre-rename permission request rather than a pre-delete permission request during a rename(2) operation, so the virtualization instance's OnPreRename() handler becomes responsible for ensuring that, outside of a GVFS lock, the .git/index file can not be renamed or overwritten. The BasicFileSystemTests.DeleteIndexFileFails() test handles the case of a true delete of .git/index, as well as platforms which deliver a pre-delete event on the source path prior to a rename action. As well, several GVFSLockTests tests such as the LockPreventsRenameFromInsideWorkingTreeOnTopOfIndex() test the case of a file being renamed to .git/index, but no existing test checks for the case of .git/index being renamed to another path (although DeleteIndexFileFails() likely suffices on platforms which send a pre-delete event). Therefore we add an explicit MoveIndexFileFails() functional test to cover this case. Note that we use System.IO.File.Replace() in the SystemIORunner because File.Move() is implemented on Unix/POSIX systems such that it actually performs a copy or hard link first, then a delete, not a true rename(2). The effect on a platform where pre-rename but not pre-delete events are delivered on rename operations is that the link succeeds, then the delete fails (since that does send a pre-delete permission request, which is denied as the path is .git/index), leaving behind a spurious extra file link. So we want to trigger a true rename(2), which is what File.Replace() does.
Configuration menu - View commit details
-
Copy full SHA for c9fd09f - Browse repository at this point
Copy the full SHA c9fd09fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8ffeee2 - Browse repository at this point
Copy the full SHA 8ffeee2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 702cc77 - Browse repository at this point
Copy the full SHA 702cc77View commit details -
Mac PrjFSLib: Makes offline I/O registration thread safe and refcounted
Calling PrjFS_RegisterForOfflineIO() twice and then PrjFS_UnregisterForOfflineIO() twice no longer causes a failed assertion, is more efficient (only one shared user client instance) and is now thread-safe.
Configuration menu - View commit details
-
Copy full SHA for 8ef11d8 - Browse repository at this point
Copy the full SHA 8ef11d8View commit details
Commits on Aug 19, 2019
-
Mac ProjFS Kext: Prevents creation of new files & dirs in offline roots
Also adds a kext unit test for blocking file/directory creation in offline roots. This further access restriction to offline roots causes problems in the CheckoutBranchWithOpenHandleBlockingProjectionDeleteAndRepoMetdataUpdate functional test, so this test now registers for offline I/O as well.
Configuration menu - View commit details
-
Copy full SHA for 55dfe47 - Browse repository at this point
Copy the full SHA 55dfe47View commit details -
Merge pull request #1429 from pmj/mac-kext-182-block-offline-empty-fi…
…le-access Mac ProjFS kext: Deny I/O on offline roots, with exceptions, part 2 This is a continuation of the work on issue #182. The remaining operations to block are: * A process attempts to read/execute an empty file in an offline root. The result of the read would be bad data, so failing with denied authorisation is preferable to letting the bad data propagate. * A process attempts to create files or directories in an offline root. The commits implementing those 2 changes are fairly straightforward, however they did cause some knock-on effects: * During gvfs clone, the git subprocess itself wants to create files/directories in the offline root, so we need it to inherit the parent gvfs process's entitlement to access offline roots. The exception check therefore now walks up the process hierarchy. * One of the functional tests, CheckoutBranchWithOpenHandleBlockingProjectionDeleteAndRepoMetdataUpdate needs to mess with the repo while it's not mounted, so I've registered the test runner for offline I/O for the duration of that test. * To avoid weird edge cases, I've made the offline I/O registration in the native userlib thread-safe and reference counted, so registering multiple times is fine, and we only actually deregister once it's been matched with an equal number of unregister calls.
Configuration menu - View commit details
-
Copy full SHA for 0da681c - Browse repository at this point
Copy the full SHA 0da681cView commit details -
Auto-unmount repos in pre-install
Mac installer pkg would now automatically unmount all repositories registered for auto mount Fixes #1124
Configuration menu - View commit details
-
Copy full SHA for 6a4485d - Browse repository at this point
Copy the full SHA 6a4485dView commit details -
Merge pull request #1411 from github/backing-root-fixes
[Linux] Convert tests and repair jobs to use backing root Convert all relevant uses of RepoRoot and WorkingDirectoryRoot in the GVFS provider and functional tests to use the backing root, to ensure these tests will pass on systems where they are distinct (e.g., Linux). For example, repair jobs run while the GVFS enlistment is not mounted, which on Linux requires us to use the backing root in order to access the ".git" contents; similarly, the MountTests are adjusted to ensure they don't expect file contents within an unmounted repository.
Configuration menu - View commit details
-
Copy full SHA for e073946 - Browse repository at this point
Copy the full SHA e073946View commit details
Commits on Aug 20, 2019
-
Update Git to v2.23.0 [PR Build]
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 0db47b6 - Browse repository at this point
Copy the full SHA 0db47b6View commit details -
Drop extra newline that was dropped in Git v2.23.0
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for de02ac3 - Browse repository at this point
Copy the full SHA de02ac3View commit details -
Make rebase validation use -q, check tree after
The output is strangely off by some whitespace, so instead of worrying about that, make sure the resulting tree is the same. Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 561e4fb - Browse repository at this point
Copy the full SHA 561e4fbView commit details -
Use GIT_QUIET to make tests more robust
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 9bc43d9 - Browse repository at this point
Copy the full SHA 9bc43d9View commit details -
Add 'restore' and 'switch' to list of known git commands
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 9f41716 - Browse repository at this point
Copy the full SHA 9f41716View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5e883e3 - Browse repository at this point
Copy the full SHA 5e883e3View commit details -
Configuration menu - View commit details
-
Copy full SHA for b19d2a5 - Browse repository at this point
Copy the full SHA b19d2a5View commit details -
Update IsCheckoutWithFilePaths for 'switch' and 'restore'
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 98befd6 - Browse repository at this point
Copy the full SHA 98befd6View commit details -
Merge pull request #1440: Add LogInfo / LogWarning messages to PrjFSLib
Add LogInfo / LogWarning messages to PrjFSLib
Configuration menu - View commit details
-
Copy full SHA for 5222875 - Browse repository at this point
Copy the full SHA 5222875View commit details
Commits on Aug 21, 2019
-
- Updated Apple Event usage description string to be generic.
- New text: `$(PRODUCT_NAME)` uses `Terminal` app to run `gvfs` commands.
Configuration menu - View commit details
-
Copy full SHA for 37fda70 - Browse repository at this point
Copy the full SHA 37fda70View commit details -
Check for new Panic Logs where PrjFSKextLogDaemon is started
- A time file is used to differentiate the last sweep - The name of the panic file is sent to telemetry
Configuration menu - View commit details
-
Copy full SHA for e2c45c6 - Browse repository at this point
Copy the full SHA e2c45c6View commit details -
Enabling Service verb Functional tests
- Removed Category.MacTODO.NeedsServiceVerb - Updated the category of SharedCacheTests::CloneCleansUpStaleMetadataLock to TestNeedsToLockFile. The test case assumes Windows style file locking behavior; causing it to fail on the Mac. Fixes #1217
Configuration menu - View commit details
-
Copy full SHA for 75c61c0 - Browse repository at this point
Copy the full SHA 75c61c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a78824 - Browse repository at this point
Copy the full SHA 0a78824View commit details -
Merge pull request #1445: Check for new Panic Logs where PrjFSKextLog…
…Daemon is started Check for new Panic Logs where PrjFSKextLogDaemon is started
Configuration menu - View commit details
-
Copy full SHA for d286a9b - Browse repository at this point
Copy the full SHA d286a9bView commit details -
Add a global setup when using a --test= option
Kevin Willford committedAug 21, 2019 Configuration menu - View commit details
-
Copy full SHA for 19867a3 - Browse repository at this point
Copy the full SHA 19867a3View commit details -
Update Git to include 'git checkout -b' fix
Includes updates from microsoft/git#183. Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for ae53240 - Browse repository at this point
Copy the full SHA ae53240View commit details -
Merge pull request #1467 Add a global setup class when using a --test…
…= option Add a global setup class when using a --test= option
Kevin Willford authoredAug 21, 2019 Configuration menu - View commit details
-
Copy full SHA for f358148 - Browse repository at this point
Copy the full SHA f358148View commit details -
Mac: Add mdworker_shared to the IsFileSystemCrawler block list
mdworker_shared is part of the Spotlight indexing service and should not be allowed to hydrate files.
Configuration menu - View commit details
-
Copy full SHA for bcf608d - Browse repository at this point
Copy the full SHA bcf608dView commit details
Commits on Aug 22, 2019
-
Merge pull request #1389: Update Git to v2.23.0
See microsoft/git#165 for the rebase onto v2.23.0.windows.1. This PR has a few reactions to that update: A newline was dropped in a message. Remove it from our expectation in a test. Rebase now has unpredictable extra line of whitespace sometimes. However, -q doesn't work in tandem with --merge, but using GIT_QUIET=true makes the output quiet on Windows. Still doesn't work on OSX for some reason, so also ignore the error output and focus on the end-result. Use git rev-parse HEAD^{tree} to ensure we got the same resulting working directory. FileContentsShouldMatch() used to fail if both of the files didn't exist. Something changed in v2.23.0 such that a cherry-pick loses a file in both vanilla Git and VFS for Git, so the test started failing on that path. Relax the condition, since the files do match. KnownGitCommands needs to include restore and switch, resolving #1463. Includes the performance fix for git checkout -b from microsoft/git#183.
Configuration menu - View commit details
-
Copy full SHA for 9b38d16 - Browse repository at this point
Copy the full SHA 9b38d16View commit details -
Configuration menu - View commit details
-
Copy full SHA for fa5b4c4 - Browse repository at this point
Copy the full SHA fa5b4c4View commit details -
Mark MoveIndexFileFails as MacOnly because CmdRunner on Windows is fa…
…iling
Kevin Willford committedAug 22, 2019 Configuration menu - View commit details
-
Copy full SHA for bfbbd53 - Browse repository at this point
Copy the full SHA bfbbd53View commit details -
Merge pull request #1473 Mac: Add mdworker_shared to the IsFileSystem…
…Crawler block list Mac: Add mdworker_shared to the IsFileSystemCrawler block list
Configuration menu - View commit details
-
Copy full SHA for a648ad0 - Browse repository at this point
Copy the full SHA a648ad0View commit details -
Configuration menu - View commit details
-
Copy full SHA for fed1f5f - Browse repository at this point
Copy the full SHA fed1f5fView commit details -
Merge pull request #1476 Mark MoveIndexFileFails as MacOnly because C…
…mdRunner on Windows failing Mark MoveIndexFileFails as MacOnly because CmdRunner on Windows failing
Kevin Willford authoredAug 22, 2019 Configuration menu - View commit details
-
Copy full SHA for e336ef7 - Browse repository at this point
Copy the full SHA e336ef7View commit details -
Merge pull request #1452: Correct Upgrade Messages for Mac
Correct Upgrade Messages for Mac
Configuration menu - View commit details
-
Copy full SHA for e534dfc - Browse repository at this point
Copy the full SHA e534dfcView commit details
Commits on Aug 23, 2019
-
use platform-specific property for case matching
This only applies to on-disk operations like locating the ".git" directory or ".idx" files, etc. -- the repository contents remain case-insensitive. Co-authored-by: Chris Darroch <chrisd8088@github.com>
Configuration menu - View commit details
-
Copy full SHA for e6eb054 - Browse repository at this point
Copy the full SHA e6eb054View commit details -
add case-sensitive matching/sorting on repo paths
Introduce case-sensitive file path matching and sorting of file and folder names within the repository as well as the modified paths and placeholder list databases, but only on Linux and other case-sensitive file systems, while retaining existing case-insensitive behaviour on Windows and Mac platforms. Also make sure to exclude the case-sensitive filesystem unit tests when running on Windows or Mac platforms.
Configuration menu - View commit details
-
Copy full SHA for abd8a62 - Browse repository at this point
Copy the full SHA abd8a62View commit details -
use platform-based case comparisons in DiffHelper
Includes filename case corrections in PrefetchVerbTests to prevent test case regressions on Linux.
Configuration menu - View commit details
-
Copy full SHA for 5c78902 - Browse repository at this point
Copy the full SHA 5c78902View commit details -
use platform-specific path matching in func tests
Use filesystem-specific case matching when comparing path throughout the functional test suite.
Configuration menu - View commit details
-
Copy full SHA for 66e3e21 - Browse repository at this point
Copy the full SHA 66e3e21View commit details -
toggle path case-sensitivity in hydrate func tests
We divide the HydratingFileUsesNameCaseFromRepo() and HydratingNestedFileUsesNameCaseFromRepo() functional tests into pairs, one for case-sensitive filesystems such as Linux, and one for case-insensitive filesystems like Mac and Windows.
Configuration menu - View commit details
-
Copy full SHA for f59a3b9 - Browse repository at this point
Copy the full SHA f59a3b9View commit details -
toggle path case-sensitivity in folder tests
We divide the FolderContentsProjectedAfterFolderCreateAndCheckout() functional test into a pair, one for case-sensitive filesystems such as Linux, and one for case-insensitive filesystems like Mac and Windows.
Configuration menu - View commit details
-
Copy full SHA for cac1316 - Browse repository at this point
Copy the full SHA cac1316View commit details -
toggle path case-sensitivity in UTF8 tests
We divide the FilterNonUTF8FileName() functional test into a pair, one for case-sensitive filesystems such as Linux, and one for case-insensitive filesystems like Mac and Windows.
Configuration menu - View commit details
-
Copy full SHA for 17c85f9 - Browse repository at this point
Copy the full SHA 17c85f9View commit details -
always lowercase SHA1 filenames for Linux
On Linux, file paths are case-sensitive, so we always use lowercase paths generated from SHA1 values because that ensures consistency with Git's own naming scheme for files under .git/objects.
Configuration menu - View commit details
-
Copy full SHA for 7b7d581 - Browse repository at this point
Copy the full SHA 7b7d581View commit details -
use mixed-case FastFetch.dll in functional tests
Make sure to use the exact case-sensitive name of FastFetch.dll in the test suite.
Configuration menu - View commit details
-
Copy full SHA for 8c05870 - Browse repository at this point
Copy the full SHA 8c05870View commit details -
use FileSystemHelpers in additional func tests
Simplify a few more platform-specific case-sensitivity checks in the functional tests and CmdRunner by using FileSystemHelpers, as suggested by kewillford on PR review.
Configuration menu - View commit details
-
Copy full SHA for 6067f04 - Browse repository at this point
Copy the full SHA 6067f04View commit details -
add case-sensitive filesystem DiffHelperTests test
Per PR suggestion from kewillford.
Configuration menu - View commit details
-
Copy full SHA for 124b6b7 - Browse repository at this point
Copy the full SHA 124b6b7View commit details -
Add case-differing-only SortedFolderEntriesTests
Per PR suggestion from kewillford.
Configuration menu - View commit details
-
Copy full SHA for 2886081 - Browse repository at this point
Copy the full SHA 2886081View commit details -
hoist case-sensitivity check out of compare loop
Per PR suggestion from wilbaker, we hoist the check on whether to perform a case-sensitive string comparison or not out of the core loop of the LazyUTF8String.Compare() method in GitIndexProjection. This should reduce the number of additional conditional tests to just one per Compare() invocation, as opposed to one per compared byte. (We could, if need be, further reduce the overhead by creating two independent Compare() methods and not passing in a bool flag, and then hoisting the comparsion-mode check higher in SortedFolderEntries.GetSortedEntriesIndexOfName() so that different versions of that method were executed depending on the mode. However, we reserve this option for now, depending on the results of performance tests.) We also add labels to the bool flags used in some of the helper methods used by the unit tests, per PR advice.
Configuration menu - View commit details
-
Copy full SHA for ef2af6f - Browse repository at this point
Copy the full SHA ef2af6fView commit details -
only down-case SHA1s on case-sensitive filesystems
Per PR advice from wilbaker.
Configuration menu - View commit details
-
Copy full SHA for d4c8260 - Browse repository at this point
Copy the full SHA d4c8260View commit details -
Configuration menu - View commit details
-
Copy full SHA for e1ef0c1 - Browse repository at this point
Copy the full SHA e1ef0c1View commit details -
restore common func tests but add case-sensitivity
As wilbaker noted in PR review, we really don't need the Case[In]SensitiveFileSystem functional test categories because we've now created the public boolean flag in FileSystemHelpers, so we can just toggle case-sensitive behaviour on that flag instead of duplicating tests and moving code around. Nice catch!
Configuration menu - View commit details
-
Copy full SHA for 7100179 - Browse repository at this point
Copy the full SHA 7100179View commit details -
Mac ProjFS userlib: Fixes resource leaks from shadowed variables
Variables were re-declared instead of simply assigned, potentially causing resource leaks and incorrect return codes on error control flow paths.
Configuration menu - View commit details
-
Copy full SHA for e7d370f - Browse repository at this point
Copy the full SHA e7d370fView commit details -
Mac ProjFS: Enable warning for shadowed local variables, fix instances
To avoid bugs resulting from shadowed variables in future, the corresponding compiler warning is now turned on across the entire project. A few benign instances discovered by the setting are resolved as well.
Configuration menu - View commit details
-
Copy full SHA for 222087f - Browse repository at this point
Copy the full SHA 222087fView commit details -
Merge pull request #1412 from github/case-sensitive-repos
[Linux] Support case-sensitive filesystems Introduce case-sensitive file path matching and sorting of file and folder names within the repository as well as the modified paths and placeholder list databases, but only on Linux and other case-sensitive file systems, while retaining existing case-insensitive behaviour on Windows and Mac platforms. We use filesystem-specific case matching when comparing path throughout the functional test suite, and also make sure to exclude the case-sensitive filesystem unit tests when running on Windows or Mac platforms. We include some filename case corrections to prevent test case regressions on case-sensitive filesystems, and use lowercase paths generated from SHA1 values because that ensures consistency with Git's own naming scheme for files under .git/objects on case-sensitive filesystems.
Configuration menu - View commit details
-
Copy full SHA for 4736473 - Browse repository at this point
Copy the full SHA 4736473View commit details -
Configuration menu - View commit details
-
Copy full SHA for 024f195 - Browse repository at this point
Copy the full SHA 024f195View commit details
Commits on Aug 24, 2019
-
Merge pull request #1483 from pmj/mac-projfs-shadowed-variable-bugfixes
Mac ProjFS: shadowed variable bugfixes This fixes a few subtle bugs caused by accidentally shadowed variables, and enables a compiler warning to prevent the class of bug in future.
Configuration menu - View commit details
-
Copy full SHA for 993b69d - Browse repository at this point
Copy the full SHA 993b69dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 33d723c - Browse repository at this point
Copy the full SHA 33d723cView commit details -
Merge pull request #1487: Use the full path to GVFS.Hooks executable …
…in the hook configuration
Configuration menu - View commit details
-
Copy full SHA for 6446823 - Browse repository at this point
Copy the full SHA 6446823View commit details -
Mac ProjFS kext: Vnode access error logging improvements
* The KextLog_File* macros are extended to output the vnode type as well as path. * Failures on vnode_lookup() will now only generate an "error" level log event if the path lies within an active root, otherwise the default log level is used.
Configuration menu - View commit details
-
Copy full SHA for 9138c33 - Browse repository at this point
Copy the full SHA 9138c33View commit details -
Mac ProjFS userlib: Consistently don't follow symlinks for metadata I/O
The code previously used a mixture of symlink-following and non-symlink following function calls. As ProjFS operates on symlinks as well, all such calls must be non-following.
Configuration menu - View commit details
-
Copy full SHA for a9894fb - Browse repository at this point
Copy the full SHA a9894fbView commit details -
Mac ProjFS kext: Consistently don't follow symlinks on vnode_lookup
As ProjFS operates on symlinks themselves, vnode lookups must not follow symlinks.
Configuration menu - View commit details
-
Copy full SHA for 47901cd - Browse repository at this point
Copy the full SHA 47901cdView commit details -
Mac ProjFS kext test: Use switch fall-through to make coverage happy
For some reason the test coverage check fails when we return from the default: switch case. Removing the default: case and returning after the switch block instead seems to make it happy.
Configuration menu - View commit details
-
Copy full SHA for feb70fb - Browse repository at this point
Copy the full SHA feb70fbView commit details
Commits on Aug 26, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 49e79e0 - Browse repository at this point
Copy the full SHA 49e79e0View commit details
Commits on Aug 27, 2019
-
Merge pull request #1482 from pmj/mac-projfs-1479-1480-no-follow-syml…
…inks Mac ProjFS: Don't follow symlinks in kext & userlib, logging improvements
Configuration menu - View commit details
-
Copy full SHA for e9b5836 - Browse repository at this point
Copy the full SHA e9b5836View commit details -
Merge pull request #1485: Mark panic strings as 'public' so they appe…
…ar in Console Mark panic strings as 'public' so they appear in Console
Configuration menu - View commit details
-
Copy full SHA for 4b6bfdb - Browse repository at this point
Copy the full SHA 4b6bfdbView commit details -
Clean up Register/Unregister for OfflineIO
- Add a call from MountSetsCoreHooksPath - Ensure we check Register is successful when starting up - Have verbs explicitly unregister
Configuration menu - View commit details
-
Copy full SHA for 553f9bb - Browse repository at this point
Copy the full SHA 553f9bbView commit details
Commits on Aug 28, 2019
-
Merge pull request #1486: Clean up Register/Unregister for OfflineIO
Clean up Register/Unregister for OfflineIO
Configuration menu - View commit details
-
Copy full SHA for 0445f9e - Browse repository at this point
Copy the full SHA 0445f9eView commit details
Commits on Aug 29, 2019
-
Fix mac installer/upgrader failure
VFSForGit installer fails in postinstall script while trying to launch Service and UserNotification agents in GUI context of logged in users. To determine users logged into the GUI context, postinstall script looks for loginwindow commands and the user running the command. When Fast User switching is enabled, then loginwindow can be running as root user, even though root user is Not logged in. In such cases, postinstall tries to launch Service and UserNotifcation agents in GUI context of root user (that does not exist) resulting in failure. This commit makes postinstall look for Finder command (which only runs after a user has successfully logged into GUI context and is therefore more reliably associated with GUI session) rather than loginwindow. Also Updated launchd plist for Service and Notification agents, added LimitLoadToSessionType = Aqua, just to make sure the agents get launched into the GUI context only. Fixes #1444
Configuration menu - View commit details
-
Copy full SHA for eae1d32 - Browse repository at this point
Copy the full SHA eae1d32View commit details -
[macOS] Capture installer log on upgrade failure
- Save last 100KB of /var/log/installer.log immediately after an upgrade failure. - Installer logs would be available through `gvfs diagnose`. - Added new platform property SupportsSystemInstallLog. This will be set to true for Platforms(macOS) that keep system wide installer log (vs custom logs specific to VFSForGit installer package).
Configuration menu - View commit details
-
Copy full SHA for c0c8c3f - Browse repository at this point
Copy the full SHA c0c8c3fView commit details
Commits on Aug 30, 2019
-
Configuration menu - View commit details
-
Copy full SHA for a47b4cf - Browse repository at this point
Copy the full SHA a47b4cfView commit details -
Add method of running the full dehydrate
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 9cba0f5 - Browse repository at this point
Copy the full SHA 9cba0f5View commit details -
Add folders option to the dehydrate verb
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for d211816 - Browse repository at this point
Copy the full SHA d211816View commit details -
Add method to remove all entries that start with a path
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for df7931e - Browse repository at this point
Copy the full SHA df7931eView commit details -
Add method to remove all entries for a folder
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 8df5cf6 - Browse repository at this point
Copy the full SHA 8df5cf6View commit details -
Add method to dehydrate a folder
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 213091b - Browse repository at this point
Copy the full SHA 213091bView commit details -
Add dehydrate message to named pipe messages
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 92c98db - Browse repository at this point
Copy the full SHA 92c98dbView commit details -
Add functional tests for dehydrating folders
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 3951c2a - Browse repository at this point
Copy the full SHA 3951c2aView commit details -
Add some error handling to dehydrate folders
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 1cf8a81 - Browse repository at this point
Copy the full SHA 1cf8a81View commit details -
Only create placeholder on mac if folder is included
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 5b03bf6 - Browse repository at this point
Copy the full SHA 5b03bf6View commit details -
Kevin Willford committed
Aug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for b8b4f4e - Browse repository at this point
Copy the full SHA b8b4f4eView commit details -
Move NormalizePath to GVFSDatabase class so it can be used in table c…
…lasses
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 7a29d3d - Browse repository at this point
Copy the full SHA 7a29d3dView commit details -
Kevin Willford committed
Aug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 0946cdf - Browse repository at this point
Copy the full SHA 0946cdfView commit details -
Add functional tests and address some PR feedback
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 78118fb - Browse repository at this point
Copy the full SHA 78118fbView commit details -
Error handling and comment when creating the placeholder on Mac when …
…included
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 0b83e87 - Browse repository at this point
Copy the full SHA 0b83e87View commit details -
Update output for status when using folders option
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 84555ba - Browse repository at this point
Copy the full SHA 84555baView commit details -
Separate copy and delete in dehydrate folders to give better error me…
…ssages
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 6e8175c - Browse repository at this point
Copy the full SHA 6e8175cView commit details -
Update message for failed folders during dehydrate
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 84c2433 - Browse repository at this point
Copy the full SHA 84c2433View commit details -
Kevin Willford committed
Aug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 8729f92 - Browse repository at this point
Copy the full SHA 8729f92View commit details -
Allow multiple strings in DehydrateShouldSucceed method
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 28d64e5 - Browse repository at this point
Copy the full SHA 28d64e5View commit details -
Kevin Willford committed
Aug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for eca4491 - Browse repository at this point
Copy the full SHA eca4491View commit details -
Add unit tests for the RemoveAllEntriesForFolder method
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 66e46df - Browse repository at this point
Copy the full SHA 66e46dfView commit details -
Use BashRunner for deleting the backup directory of Dehydrate tests
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 4b59f1e - Browse repository at this point
Copy the full SHA 4b59f1eView commit details -
Add logging when adding a modified path fails
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 0e2505e - Browse repository at this point
Copy the full SHA 0e2505eView commit details -
Parent dehydrated means cannot create placeholder for child
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 4e4b2d8 - Browse repository at this point
Copy the full SHA 4e4b2d8View commit details -
Placeholder on Mac will not get created unless folder is included
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 5435742 - Browse repository at this point
Copy the full SHA 5435742View commit details -
Rollback placeholders and modified paths when there is an exception
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for ba80222 - Browse repository at this point
Copy the full SHA ba80222View commit details -
Use fullDehydrate variable in all places
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 5bc364d - Browse repository at this point
Copy the full SHA 5bc364dView commit details -
Show parent folder that needs to be dehydrated
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 672cde7 - Browse repository at this point
Copy the full SHA 672cde7View commit details -
Mac ProjFS: Don't perform user/kernel version validation for offline I/O
Offline I/O registration uses a trivial user/kernel API which is not sensitive to version differences, and there have been instances where gvfs upgrade has failed and left VFS4G in an unusable state because version validation failed mid-upgrade. This change disables validation for offline I/O registration only.
Configuration menu - View commit details
-
Copy full SHA for 3516e95 - Browse repository at this point
Copy the full SHA 3516e95View commit details -
Add more functional tests for dehydrate
Kevin Willford committedAug 30, 2019 Configuration menu - View commit details
-
Copy full SHA for 7956bd9 - Browse repository at this point
Copy the full SHA 7956bd9View commit details
Commits on Sep 4, 2019
-
Mac installer preinstall failure
All registered repositories should be unmounted before unloading the PrjFS Kext.
Configuration menu - View commit details
-
Copy full SHA for 23e09da - Browse repository at this point
Copy the full SHA 23e09daView commit details -
Check the disposing flag in Dispose methods
When implementing Dispose the disposing flag needs to be checked so that objects that may have already been disposed of through gc will not be used and cause a ObjectDisposedException.
Kevin Willford committedSep 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 26da1a7 - Browse repository at this point
Copy the full SHA 26da1a7View commit details -
Remove NormalizePath from SparseTable
Kevin Willford committedSep 4, 2019 Configuration menu - View commit details
-
Copy full SHA for e522aed - Browse repository at this point
Copy the full SHA e522aedView commit details -
Update messages to be more consistent
Kevin Willford committedSep 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 65fb064 - Browse repository at this point
Copy the full SHA 65fb064View commit details -
Rename methods to be more descriptive
Kevin Willford committedSep 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 536b017 - Browse repository at this point
Copy the full SHA 536b017View commit details -
Merge pull request #1507 Check the disposing flag in Dispose methods
Check the disposing flag in Dispose methods
Kevin Willford authoredSep 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 3511453 - Browse repository at this point
Copy the full SHA 3511453View commit details -
Method name cleaup, string comparison fix, and add const for folder s…
…eparator
Kevin Willford committedSep 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 98e2a19 - Browse repository at this point
Copy the full SHA 98e2a19View commit details -
Rename DehydrateFolder to TryDehydrateFolders indicating there is a r…
…eturn value
Kevin Willford committedSep 4, 2019 Configuration menu - View commit details
-
Copy full SHA for fae268b - Browse repository at this point
Copy the full SHA fae268bView commit details -
diff: use csharp driver for better function headers in .cs files
Update .gitattributes to use the csharp pattern for hunk headers in *.cs files. This will result in the csharp function name that a change occurs in to be included in the hunk header.
Configuration menu - View commit details
-
Copy full SHA for c4f21f3 - Browse repository at this point
Copy the full SHA c4f21f3View commit details -
Update tests to match new messages
Kevin Willford committedSep 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 22de908 - Browse repository at this point
Copy the full SHA 22de908View commit details
Commits on Sep 5, 2019
-
Merge pull request #1499 from pmj/mac-projfs-offline-io-registration-…
…no-kext-user-version-validation Mac ProjFS: Don't perform user/kernel version validation for offline I/O
Configuration menu - View commit details
-
Copy full SHA for e9f1a21 - Browse repository at this point
Copy the full SHA e9f1a21View commit details -
Merge pull request #1508: diff: use csharp driver for better function…
… headers in .cs files diff: use csharp driver for better function headers in .cs files
Configuration menu - View commit details
-
Copy full SHA for 7b5056f - Browse repository at this point
Copy the full SHA 7b5056fView commit details -
Configuration menu - View commit details
-
Copy full SHA for d19e39a - Browse repository at this point
Copy the full SHA d19e39aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 213d8a2 - Browse repository at this point
Copy the full SHA 213d8a2View commit details -
- This fixes the failure when a Phython Executable is called before hydration.
Configuration menu - View commit details
-
Copy full SHA for f666c33 - Browse repository at this point
Copy the full SHA f666c33View commit details
Commits on Sep 6, 2019
-
Merge pull request #1498: Don't allow Executables to be Placeholder
Don't allow Executables to be Placeholders
Configuration menu - View commit details
-
Copy full SHA for e2dcb91 - Browse repository at this point
Copy the full SHA e2dcb91View commit details -
Remove top level try/catch to allow correct message to the user
Kevin Willford committedSep 6, 2019 Configuration menu - View commit details
-
Copy full SHA for 29ca1f5 - Browse repository at this point
Copy the full SHA 29ca1f5View commit details -
Update user message when no folders in sparse list
Kevin Willford committedSep 6, 2019 Configuration menu - View commit details
-
Copy full SHA for e863f8c - Browse repository at this point
Copy the full SHA e863f8cView commit details
Commits on Sep 9, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 72b2c5a - Browse repository at this point
Copy the full SHA 72b2c5aView commit details -
Configuration menu - View commit details
-
Copy full SHA for c126571 - Browse repository at this point
Copy the full SHA c126571View commit details
Commits on Sep 10, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 7cf9194 - Browse repository at this point
Copy the full SHA 7cf9194View commit details -
Merge pull request #1518 [Merge to M158] Call multi-pack-index with -…
…-no-progress [Merge to M158] Call multi-pack-index with --no-progress
Configuration menu - View commit details
-
Copy full SHA for 603c90e - Browse repository at this point
Copy the full SHA 603c90eView commit details