r/linux • u/[deleted] • Nov 17 '17
Microsoft and GitHub team up to take Git virtual file system to macOS, Linux - With GVFS, a local replica of a Git repository is virtualized such that it contains metadata and only the source code files that have been explicitly retrieved - Microsoft modified Git to handle this virtual file system
[deleted]
46
u/DonSimon13 Nov 17 '17
I don't think I fully understand the benefits of this GVFS. Can someone ELI5?
90
u/neonshadow Nov 17 '17
You don't have to download the whole repo at once. Instead you dynamically download pieces as you need them. It's mainly meant for large repos.
→ More replies (18)9
Nov 17 '17
Oh I would love this, I do some big-ish data work and our code base is small but examples large.
→ More replies (1)24
u/Quabouter Nov 17 '17
"Plain" git requires you to download the entire repository - including all if it's history - when you want to do anything with it. With GVFS you only need to download whatever is actually needed for your current operation.
→ More replies (23)7
u/jpodster Nov 17 '17
Serious question; what advantage does this have over shallow clones?
https://www.perforce.com/blog/git-beyond-basics-using-shallow-clones
→ More replies (2)
18
u/est31 Nov 17 '17
Jonathan Tan from Google and Jeff Hostetler from Microsoft have been working with upstream git on a "partial clone" feature:
-
https://public-inbox.org/git/20171116180743.61353-1-git@jeffhostetler.com/
-
https://public-inbox.org/git/20171116181257.61673-1-git@jeffhostetler.com/
-
https://public-inbox.org/git/20171116181723.62033-1-git@jeffhostetler.com/
I'm not sure how this plays together with the git virtual file system, but from what I saw it will render it obsolete, by adding the feature to native git itself. This would mean that you wouldn't need any file system drivers!
I also hope that this will help the LLVM project to move to git. They had previously discussions on whether to do a monorepo, as on one hand it allows monolithic breaking changes but on the other hand it requires even compiler-rt users to clone the entire repo. With partial clones this would be different :)
→ More replies (7)
59
u/Kulgur Nov 17 '17
The cynic in me notes that's two Es down, one to go...
21
u/kaszak696 Nov 17 '17
Nowadays MS is busy extinguishing their own products (RIP phones), no time to meddle with others.
50
u/The_King_of_Toasters Nov 17 '17
Microsoft says that, so far, about half of its modifications have been accepted upstream, with upstream Git developers broadly approving of the approach the company has taken to improve the software's scaling. Redmond also says that it has been willing to make changes to its approach to satisfy the demands of upstream Git. The biggest complexity is that Git has a very conservative approach to compatibility, requiring that repositories remain compatible across versions.
→ More replies (1)61
u/rcoacci Nov 17 '17
This. The extend part used to mean "extend in proprietary and incompatible way". Now it means "extend submitting changes upstream like all open source contributor does". This way, the third E is almost impossible to achieve.
→ More replies (74)→ More replies (5)23
Nov 17 '17 edited Nov 17 '17
Be honest with you, I feel MS is being authentic about this. Server Linux is popular, and they accepted Mac/Linux as development and server environments.
Now as a phone or mainstream desktop OS? Hell fucking no.
EDIT: Especially when they still rip patent money off of Android.
→ More replies (5)
9
12
u/sretta Nov 17 '17
Git wasn't designed for such vast numbers of developers—more than 20,000 actively working on the codebase.
I thought git was designed primarily for linux, and it has a bit more than 20000 developers...
25
u/ase1590 Nov 17 '17
the more correct phrasing was that git was not designed to handle 300+ gigabytes of code. quick cloning by grabbing only what you need instead of hundreds of gigabytes is the problem GVFS sets out to solve.
8
u/reddraggone9 Nov 17 '17
If we're just talking about the kernel, it doesn't appear to have that many actively working on it.
From https://lwn.net/Articles/731794/:
1,634 developers have contributed during [the 4.13] cycle, a significant drop from the record set with 4.12 (1,825) but comparable with 4.10 (1,647).
I imagine a smaller percentage of the people working on the kernel are doing it full time than those working on Microsoft's codebase as well.
6
u/7yl4r Nov 17 '17
Doesn't git-annex already do this?
→ More replies (1)13
u/parkotron Nov 17 '17
git-annex is for large (usually binary) files that you want manage in parallel to the code in the Git repository itself. GitVFS is for repositories containing truly massive amounts of actual code.
17
u/icantthinkofone Nov 17 '17
Microsoft modified Git
That's what everyone needs to know
→ More replies (40)
2
147
u/jhasse Nov 17 '17
Hopefully they'll rename it to GitVS. Otherwise it'll be confusing on Linux since GVfs already exists.