Comments (1)
That is a great question, and one that we will work to give more specific guidance on. Some general thoughts...
You're absolutely right that there's no need to virtualize smaller repos. In general, if you're going to need most/all of the contents of a repo, doing a bulk copy of all of the contents is MUCH faster than copying each file one at a time. So even for larger repos, the same holds: if you're going to use all of the files, e.g. because you will build from the root and the build touches everything, then again you lose much of the benefits of virtualizing.
Based on our own experience within Microsoft, I can tell you that if your codebase is roughly 100K files or fewer, and less than single digit GBs of content, Git works pretty well as is, especially with some of the more recent perf improvements that have been made there.
If your codebase is 1M files or more, then chances are that you have a sophisticated build infrastructure as well, and that most of your devs don't build all of the sources themselves. The most common workflow on teams of that size is that devs download the build outputs from the most recent official build, and then run an incremental build on some subfolder that contains the sources they are working in.
If you fit both of those conditions: 1) You have lots of source files (I'd guess 250K or more? 500K or more?) and 2) devs don't need to access every file in their day to day work; then you might benefit from virtualizing.
GVFS provides two important functions: one is that it helps you avoid downloading file contents that you don't need. The other is that it manages the specific set of files that Git has to consider when you run commands like "git status", "git checkout", etc. So we're tackling both the problem of size, but also the problem of too many files.
from vfsforgit.
Related Issues (20)
- Broken links for articles about the details of VFS for Git HOT 5
- FastFetch fails to delete files in some circumstances
- Unattended install hangs on GVFS.Service.UI.exe HOT 1
- Can VFS work with LFS? HOT 1
- Race condition in BatchObjectDownloadStage HOT 2
- Fetching commits and trees from cache server...Failed. HOT 7
- Azure DevOps GVFS Error
- Missing entries in context menus (on Windows)
- Consider upgrading LibGit2Sharp.NativeBinaries as they are over 3 years old
- Cache folder grows boundlessly HOT 3
- Is there any way to get Xcode's source control to support vfs git? HOT 2
- Is the licensing problematic? HOT 2
- Where does VFS For Git Mount The Repos HOT 3
- Where does VFS For Git Mount The Repos HOT 1
- VFS for Git is incompatible with Azure DevOps OAuth
- Corrupt object tests failing with latest microsoft/git version
- No more options?
- AutoMount fails when ACLs on directory are note set correctly
- Git Restore Fails with "did not match any file(s) known to git" HOT 20
- GVFS clone failure to read creds from windows credential manager with latest git on vm? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vfsforgit.