Coder Social home page Coder Social logo

vfsforgit's Introduction

VFS for Git

Notice: With the release of VFS for Git 2.32, VFS for Git is in maintenance mode. Only required updates as a reaction to critical security vulnerabilities will prompt a release.

Branch Unit Tests Functional Tests Large Repo Perf Large Repo Build
master Build status Build status Build status Build status
shipped Build status Build status Build status Build status

What is VFS for Git?

VFS stands for Virtual File System. VFS for Git virtualizes the file system beneath your Git repository so that Git and all tools see what appears to be a regular working directory, but VFS for Git only downloads objects as they are needed. VFS for Git also manages the files that Git will consider, to ensure that Git operations such as status, checkout, etc., can be as quick as possible because they will only consider the files that the user has accessed, not all files in the repository.

Note: for new deployments, we strongly recommend you consider Scalar instead of VFS for Git. By combining the lessons from operating VFS for Git at scale with new developments in Git, Scalar offers a clearer path forward for all large monorepos.

Installing VFS for Git

VFS for Git requires Windows 10 Anniversary Update (Windows 10 version 1607) or later.

To install, use winget to install the microsoft/git fork of Git and VFS for Git using:

winget install --id Microsoft.Git
winget install --id Microsoft.VFSforGit

You will need to continue using the microsoft/git version of Git, and it will notify you when new versions are available.

Building VFS for Git

If you'd like to build your own VFS for Git Windows installer:

  • Install Visual Studio 2017 Community Edition or higher (https://www.visualstudio.com/downloads/).
    • Include the following workloads:
      • .NET desktop development
      • Desktop development with C++
      • .NET Core cross-platform development
    • Include the following additional components:
      • .NET Core runtime
      • Windows 10 SDK (10.0.10240.0)
  • Install the .NET Core 2.1 SDK (https://www.microsoft.com/net/download/dotnet-core/2.1)
  • Install nuget.exe
  • Create a folder to clone into, e.g. C:\Repos\VFSForGit
  • Clone this repo into the src subfolder, e.g. C:\Repos\VFSForGit\src
  • Run \src\Scripts\BuildGVFSForWindows.bat
  • You can also build in Visual Studio by opening src\GVFS.sln (do not upgrade any projects) and building. However, the very first build will fail, and the second and subsequent builds will succeed. This is because the build requires a prebuild code generation step. For details, see the build script in the previous step.

You can also use Visual Studio 2019. There are a couple of options for getting all the dependencies.

  • You can install Visual Studio 2017 side by side with Visual Studio 2019, and make sure that you have all the dependencies from Visual Studio 2017 installed
  • Alternatively, if you only want to have Visual Studio 2019 installed, install the following extra dependencies:

Visual Studio 2019 will automatically prompt you to install these dependencies when you open the solution. The .vsconfig file that is present in the root of the repository specifies all required components except the Windows 10 SDK (10.0.10240.0) as this component is no longer shipped with VS2019 - you'll still need to install that separately.

The installer can now be found at C:\Repos\VFSForGit\BuildOutput\GVFS.Installer.Windows\bin\x64\[Debug|Release]\SetupGVFS.<version>.exe

Trying out VFS for Git

  • VFS for Git requires a Git service that supports the GVFS protocol. For example, you can create a repo in Azure DevOps, and push some contents to it. There are two constraints:
    • Your repo must not enable any clean/smudge filters
    • Your repo must have a .gitattributes file in the root that includes the line * -text
  • gvfs clone <URL of repo you just created>
    • Please choose the Clone with HTTPS option in the Clone Repository dialog in Azure Repos, not Clone with SSH.
  • cd <root>\src
  • Run Git commands as you normally would
  • gvfs unmount when done

Note on naming

This project was formerly known as GVFS (Git Virtual File System). You may occasionally see collateral, including code and protocol names, which refer to the previous name.

Licenses

The VFS for Git source code in this repo is available under the MIT license. See License.md.

VFS for Git relies on the PrjFlt filter driver, formerly known as the GvFlt filter driver, available as a prerelease NuGet package.

vfsforgit's People

Contributors

50wliu avatar alameenshah avatar benpeart avatar changeworld avatar chrisd8088 avatar derrickstolee avatar eschryn avatar halterer avatar jamill avatar jeremyepling avatar jeschu1 avatar jrbriggs avatar kewillford avatar kivikakk avatar ldennington avatar microsoft-github-policy-service[bot] avatar mjcheetham avatar nickgra avatar nicrd avatar pmj avatar ravi-saini35 avatar rootulp avatar sanoursa avatar stevebenz avatar tyrielv avatar vdye avatar vtbassmatt avatar wilbaker avatar yairhalberstadt avatar yehezkelshb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vfsforgit's Issues

ChromeOS

Hello Microsoft team,
Thank you for the great idea. I would still like to request an implementation for ChromeOS. I know Chrome is not a product of yours. I would still like to be able to embed GIT under ChromeOS, which is the task of GVFS. It is already possible to mount SMB directories, maybe you can build on it?
Thank you for your help

Confused by unstable object source data

I think this is more of a Visual Studio Team Explorer issue, but I'll mention it here too.

I'm hosting a git repo on TFS 2018 that contains a solution in VS 2015. On my GVFS-enabled test machine, I did a gvfs clone, which worked. I then opened the solution in VS 2017, which then touched all the vcxproj and vcxproj.filters; no changes were made, but they were touched. VS 2017 reports that it's using the expected version of git (with GVFS support installed from latest preview build).

Interesting thing here is that git on command line does not report these .vcxproj and .vcxproj.filters files as having changed but the Team Explorer git changes panel does.

Now the real issue is that when I go to submit these apparently changed files from the Team Explorer changes window, I get the following failure in the Team Explorer pane.

image.

Committing with git command line and then pushing from command line worked just fine.

GVFS requires a OS downgrade to use

I don't see why I should have to downgrade from 7 to 10 to use this.

It should be easy enough to port to 7

This team had a choice, accept windows 10 as the required version, or try to get windows 7 supported.

They choose wrong.

Windows 7 STILL has more users then windows 10. http://www.w3schools.com/browsers/browsers_os.asp

So they said that the majority of users being unable to use their product was ok,

This is me pushing against them on that, and rightfully so.

They should have tried harder

In order to improve windows 10, people have to do the following:

  • Not accept windows 10 in its current state as an primary os
    • Meaning not accepting the idea of software only being supported on windows 10
  • Not use windows 10 where they have the choice
  • Give microsoft feedback on why they are doing the above

Pushing back against only supporting windows 10, (regardless of why) is a necessary evil to improving windows 10.

Warning received "Unable to validate your GVFS version"

I pulled the repo and built GFVS in debug and installed it. I also have TFS 2018 RC2 installed on another machine. I created a git repo on TFS 2018 RC2 server and tried to clone it with gvfs and get the following issue:

image

Is the warning something I should be concerned with ? Was there a step I neglected in building? Does TFS 2018 RC2 not support gvfs fully?

Error when cloning an empty repo

Calling $ gvfs clone https://<user>.visualstudio.com/_git/<proj> on an empty repo gives the following error:

Clone parameters:
  Repo URL:     https://<user>.visualstudio.com/_git/<proj>
  Cache Server: Default
  Destination:  <path>
Authenticating...Succeeded
Querying remote for config...Succeeded
Using cache server: None (https://<user>.visualstudio.com/_git/<proj>)
Cloning...Failed. Run 'gvfs log <path>' for more info.
Cannot clone @ <path>: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.ThrowHelper.ThrowKeyNotFoundException()
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at GVFS.CommandLine.CloneVerb.CreateClone(ITracer tracer, GVFSEnlistment enlistment, GitObjectsHttpRequestor objectRequestor, GitRefs refs, String branch) in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\CloneVerb.cs:line 368
   at GVFS.CommandLine.CloneVerb.TryClone(JsonEtwTracer tracer, GVFSEnlistment enlistment, CacheServerInfo cacheServer, RetryConfig retryConfig) in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\CloneVerb.cs:line 297
   at GVFS.CommandLine.CloneVerb.<>c__DisplayClass31_2.<Execute>b__1() in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\CloneVerb.cs:line 143
   at GVFS.Common.ConsoleHelper.<>c__DisplayClass3_0.<ShowStatusWhileRunning>b__0() in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS.Common\ConsoleHelper.cs:line 44
   at GVFS.Common.ConsoleHelper.ShowStatusWhileRunning(Func`1 action, String message, TextWriter output, Boolean showSpinner, String gvfsLogEnlistmentRoot, Int32 initialDelayMs) in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS.Common\ConsoleHelper.cs:line 113
   at GVFS.CommandLine.GVFSVerb.ShowStatusWhileRunning(Func`1 action, String message, Boolean suppressGvfsLogMessage) in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\GVFSVerb.cs:line 148
   at GVFS.CommandLine.CloneVerb.Execute() in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\CloneVerb.cs:line 140

GVFS version: 1.0.17318.1
Git version: 2.15.1.gvfs.2.preview.3

.NET 3.5 Dependency?

Hi, I just have a question about the dependency on .NET 3.5 listed in the readme. Does GVFS depend on anything specific to .NET Framework 3.5? and are there any blockers towards removing that dependency and solely targeting a newer version of .NET Framework or even .NET Standard 2.0 or 2.1?

can GVFS support submodule?

I got this message:

Submodule operations are not supported on a GVFS repo
fatal: pre-command hook aborted command

Object IDs used in requests should be lowercase

I've implemented preliminary support for GVFS operations in Atlassian Bitbucket Server (note: not Bitbucket Cloud, e.g. bitbucket.org). In doing so, one of the things I've noticed is that GET /gvfs/objects/<sha> requests, as well as application/x-gvfs-loose-objects requests to POST /gvfs/objects, use uppercase object IDs. (Interestingly, application/x-git-packfile requests to POST /gvfs/objects use lowercase object IDs; I'm assuming that's because it drew the values from the ref advertisement, which uses lowercase values.)

When running on Windows this detail doesn't matter, since the filesystem is case-insensitive. And, naturally, I can lowercase the IDs on the server before processing (and I do so). But for the protocol, this is a nonsequitor choice. By convention, if not by absolute requirement, git always writes object IDs in lowercase hex, both on disk and in its wire protocol. For simplicity when implementing server-side processing for this, the GVFS client should also use lowercase object IDs.

VITSL

Venture Information Technology Services Ltd.

System.IO.FileNotFoundException: Could not load file or assembly 'GvLib.Managed.dll'

OS: Windows 10 1703 (build 15063.726)
GVFS: 1.0.17318.1
Git: 2.15.0.gvfs.1.preview.4

I've just installed GVFS and the latest Git and tried to clone repository from VSTS.

C:\TEST\GVFS>gvfs clone https://arkadiumarena.visualstudio.com/Phoenix%20Games/_git/five-roll-pixi
Clone parameters:
  Repo URL:     https://arkadiumarena.visualstudio.com/Phoenix%20Games/_git/five-roll-pixi
  Cache Server: Default
  Destination:  C:\TEST\GVFS\five-roll-pixi
Authenticating...Succeeded
Querying remote for config...Succeeded
Using cache server: None (https://arkadiumarena.visualstudio.com/Phoenix%20Games/_git/five-roll-pixi)
Cloning...Failed. Run 'gvfs log C:\TEST\GVFS\five-roll-pixi' for more info.
Cannot clone @ C:\TEST\GVFS\five-roll-pixi: System.IO.FileNotFoundException: Could not load file or assembly 'GvLib.Managed.dll' or one of its dependencies. The specified module could not be found.
File name: 'GvLib.Managed.dll'
   at GVFS.GVFlt.GVFltCallbacks.TryPrepareFolderForGVFltCallbacks(String folderPath, String& error)
   at GVFS.CommandLine.CloneVerb.CreateClone(ITracer tracer, GVFSEnlistment enlistment, GitObjectsHttpRequestor objectRequestor, GitRefs refs, String branch) in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\CloneVerb.cs:line 354
   at GVFS.CommandLine.CloneVerb.TryClone(JsonEtwTracer tracer, GVFSEnlistment enlistment, CacheServerInfo cacheServer, RetryConfig retryConfig) in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\CloneVerb.cs:line 297
   at GVFS.CommandLine.CloneVerb.<>c__DisplayClass31_2.<Execute>b__1() in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\CloneVerb.cs:line 143
   at GVFS.Common.ConsoleHelper.<>c__DisplayClass3_0.<ShowStatusWhileRunning>b__0() in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS.Common\ConsoleHelper.cs:line 44
   at GVFS.Common.ConsoleHelper.ShowStatusWhileRunning(Func`1 action, String message, TextWriter output, Boolean showSpinner, String gvfsLogEnlistmentRoot, Int32 initialDelayMs) in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS.Common\ConsoleHelper.cs:line 113
   at GVFS.CommandLine.GVFSVerb.ShowStatusWhileRunning(Func`1 action, String message, Boolean suppressGvfsLogMessage) in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\GVFSVerb.cs:line 148
   at GVFS.CommandLine.CloneVerb.Execute() in C:\Repos\GitHubUpdate\Internal\GVFS\GVFS\CommandLine\CloneVerb.cs:line 140

How does GVFS work in disconnected environment?

I thought one of the benefits of git is that you have an entire copy of the repo so you can work disconnected. Does this cause this git to not have a complete copy? Does this cause git to be less distributed and more centralized? I am not against this and see the benefit for large repos. I am trying to understand what is the trade off. What happens if I am disconnected and try to checkout/commit files I do not already have touched? I guess a more general question is how does GVFS work in a disconnected environment that git was designed for?

SSH Protocol Support

I suggest GVFS Team support SSH protocol。For some people, the SSH protocol is actually easier to access。

We known git fetch and push is call remote server git-upload-pack or git-receive-pack, Gvfs can also be made into a command, and then either HTTP or SSH server, the user request is converted to the server call this command, get the output of this command. Here are the command arguments I suggested

git-gvfs GVFS Implementation
usage: [command] [args] gitdir
    config         show server config
    size           input json object ids, show those size
    pack-objects   pack input oid's objects
    loose-object   --oid; send loose object
    prefetch       --lastPackTimestamp; prefetch transfer

When gvfs clone convert to ssh -X [email protected] git-gvfs pack-objects someone.git json data write to stdin, read git-gvfs's stdout as a packfile.

The server is easier to implement, but the client has some trouble

GVFS and an repo on github

Hey,

I want to try the gfvs, however on my repo im getting:

Clone parameters:
Repo URL: https://github.com/kingofthebongo2008/gpudwt.git
Cache Server: Default
Destination: F:\homedevelopment1\gpudwt.git
Authenticating...Succeeded
Querying remote for config...Failed
Unable to query /gvfs/config

What should i do to get it working:

I am running version
git version 2.15.1.gvfs.2.preview.3

Regards

GVFS requires a OS downgrade to use

I don't see why I should have to downgrade from 7 to 10 to use this.

It should be easy enough to port to 7

This team had a choice, accept windows 10 as the required version, or try to get windows 7 supported.

They choose wrong.

Windows 7 STILL has more users then windows 10. http://www.w3schools.com/browsers/browsers_os.asp

So they said that the majority of users being unable to use their product was ok,

This is me pushing against them on that, and rightfully so.

They should have tried harder

In order to improve windows 10, people have to do the following:

  • Not accept windows 10 in its current state as an primary os
    • Meaning not accepting the idea of software only being supported on windows 10
  • Not use windows 10 where they have the choice
  • Give microsoft feedback on why they are doing the above

Pushing back against only supporting windows 10, (regardless of why) is a necessary evil to improving windows 10.

How GVFS works

I'd love there to be an explanation of how CVFS works in detail, not the high level overview that README.md gives. Either in a dedicated file or a README.md for each project.

Question - Is Git-LFS (Large File Storage) supported?

Well done on a great concept!
I look forward to trying it out.

GVFS will be great for my needs if it also supports very large files.

  1. Is the combination of GVFS and VSTS-LFS supported yet?
  2. Can I specify my own LFS Store / Server for storing the large files?
  3. Can the LFS Store be local storage, like 'directly' on hard drives / network storage?

Path-Based Read Access

If you move to a monorepo, the size of the repository tends to grow very large, and it presents a security challenge -- you might only want to let a small number of people access the more sensitive parts of your codebase. GVFS is designed to solve the first problem, and it seems like a good foundation to solve the second -- if you're not allowed to read a particular file, then the GVFS server simply will refuse to serve it to you.

why does gvfs pull to "src" folder?

When I use GVFS to clone a repo on TFS 2018 to a specific directory, GVFS makes a "src" folder under that and puts the code there. Can I prevent that in some way?

GVFlt Service is not running

I build & setup,without any errors。

In git bash, run gvfs clone URL,got message:

Error: GVFlt Service is not running. To resolve, run "sc start gvflt" from an admin command prompt

run: sc start gvflt,got message:

[SC] StartService FAILED 127:
The specified procedure could not be found.

Solving IDE indexing question

Thank you for the presentation at #gitmerge 2017. It was great.

I'm wondering how do you indent to solve the intents from IDE to fetch all files to index sources. Similarly, compilation may require too much files to be fetched.

Squash already downloaded but unused files

Add an option to remove (squash) files not used recently and that are already on the remote GIT repository. This can be done based on some rules, like storage is full or files untouched for some months or so. This can allow for a transparent Dropbox-like or remote cache-like filesystem without wasting a lot of local space or when it's not available (for example, several tablets using a multi-terabyte home NAS).

Please talk more about the benefits

I can see that GVFS can be very useful in a big repo. It's not that valuable for small repoes.

So when do I really need this? How big should my repo become to use this? How good is this?

build and objects download

in my case I'm building the whole project (which also contains dll files), my question is,
does the blobs objects(that I understand that are the ones increasing the size on disk) will be downloaded
once they are fetch in the build?

will the move from TFVC to GVFS will still be useful? or the repository will grow to a point where working with git will be impossible?

Investigate GIT as PDM replacement using GVFS.

Greetings,

I would like to open a dialog regarding GVFS as the engineering vault.
Typically, Product data management systems are SQL driven virtual file systems.
This requires constant local SQL server activity.
The advantage of a GIT is that we push changes to a central repository.

Is it possible to Support a file locking system on the GVFS file so that only one person can change the locked file?

Exclusively for CAD file usage, could we interrupt the commit/push operation?
The issue we see is there exists few methods to cleanly merge changes to CAD files.

Thanks,
coast

GVFS collision name

Hello,

I suggest - to ensure the adequate development - change the name of the project. The current name conflicts with a mature open-source project GVfs ( https://en.wikipedia.org/wiki/GVfs ) which is the same class of software (virtual file system). Searching information about first or second will be terrible. Fix that as your project is young, please.

Greetings,

Hydrated?

What exactly is a "fully hydrated repo"? There is no such thing in Git terminology.

Please use proper terminology in the Readme and elsewhere.

Option to skip Windows Defender exclusion

We are not using Windows Defender, and it would be nice if there was an option to skip the Add-MpPreference call when doing gvfs mount (or gvfs clone w/out --no-mount).

Mount works just fine, but this calls adds unnecessary clutter to the command window/logs.

WARNING: Unable to ensure that '<path>' is excluded from antivirus
Could not add this repo to the antivirus exclusion list: Add-MpPreference : Operation failed with the following error: 0x800106b                                                                                                                a. Opera
tion: MpPreference. Target: ConfigListExtension.
At line:1 char:5
+ & { Add-MpPreference -ExclusionPath <path> }
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (MSFT_MpPreference:root\Microsoft\
   ...FT_MpPreference) [Add-MpPreference], CimException
    + FullyQualifiedErrorId : HRESULT 0x800106ba,Add-MpPreference

Add-MpPreference : Operation failed with the following error: 0x%1!x!
At line:1 char:5
+ & { Add-MpPreference -ExclusionPath <path> }
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (MSFT_MpPreference:root\Microsoft\
   ...FT_MpPreference) [Add-MpPreference], CimException
    + FullyQualifiedErrorId : HRESULT 0x800106ba,Add-MpPreference

GVFS version: 1.0.17318.1
Git version: 2.15.1.gvfs.2.preview.3

libgit2 integration?

Hey everyone,
I'm just wondering if you're planning on integrating with libgit2 at all?

This is going to be pretty vital for tools.

Question - Does GVFS replace NTFS?

Just trying to get a broad idea of how GVFS operates. Is it a replacement file system for NTFS? I mean does it do what NTFS does but include additional functionality? or does it replace NTFS but lose some NTFS functionblaity?

Virtual Repositories

Something that comes up from time to time is the need to be able to run and debug two versions of an app at the same time, these apps being on different branches in a repo. Git does not really support the concept of having two branches checked out at the same time and so there are other somewhat contrived ways of doing this but they are cumbersome.

However it occurs to me that with GVFS it may be possible to create the abstract idea of a virtual repo.

A virtual repo would be a folder with some form of association to some other (actual repo) folder.

Using GVFS the virtual repo would appear to be a distinct repo and when a branch in the virtual repo gets checked out GVFS would create whatever folders/files are necessary (within the virtual repo's disk folder) by getting them from the "real" repo.

So in a tool (e.g. Smartgit) one might see two repos "main_apps" and "main_apps.2" (the latter being "virtual".

I can then checkout branch_x in one repo and branch_y in the other, but the state of the file system withing the virtual repos (physical) folder is determined by the git history data in the real repo.

Obviously there are issues and questions that arise but assuming these are not showstoppers this could be a very useful feature.

Unable to mount because the GVFS.Mount process is not responding.

Recently I am trying GVFS. It works well on my laptop, but always got below error message on my VM.

Validating repo...Succeeded
Mounting...Failed. Run 'gvfs log C:\gitRepos\Test' for more info.
Unable
to mount because the GVFS.Mount process is not responding.

But actually, gvfs status said mount status is ready.
After running "gvfs unmounts" and "gvfs mount -v Verbose -d" many times, I guess it is due to timeout value in WaitUntilMounted function.

My VM is poor performace. GVFS.Mount process cannot complete task in that timeout.
I tried to set timeout bigger, rebuilt GVFS. Then, the problem disappeared.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.