Azure DevOps Blog
blogs.msdn.microsoft.com/devops · Company blog · on HN since 2017
Microsoft's Azure DevOps team writes about Git performance, the GVFS virtual file system, and their branching practices.
What HN saysHN links it for the GVFS announcement, which commenters cite as evidence that Git needed extra work to scale to very large repositories.
41HN people shared it
20linked it in comments
51stories submitted
1.0Kstory points
6 years agolast shared
2017people per year2026
Most-shared posts
- 1Supercharging the Git Commit Graph7 people · 246 points · first shared 2018 · 83 comments on HN
- 2Announcing gvfs git virtual file system6 people · first shared 2017
- 3Microsoft’s Performance Contributions to Git in 20175 people · 35 points · first shared 2018 · discussion on HN
- 4GVFS Updates: More Performance, More Availability5 people · 7 points · first shared 2017 · discussion on HN
- 5GVFS for Mac3 people · 7 points · first shared 2018 · discussion on HN
- 6VSTS Public Projects Limited Preview3 people · 2 points · first shared 2018 · discussion on HN
- 7Optimizing git beyond gvfs3 people · first shared 2017
- 8Release Flow: How We Do Branching on the VSTS Team (2018)2 people · 42 points · first shared 2018 · 3 comments on HN
- 9The Git commit-graph file format and other optimizations2 people · 9 points · first shared 2018 · discussion on HN
- 10Azure DevOps Simplified – Zero to Devops on Azure in 60 Seconds2 people · 6 points · first shared 2017 · discussion on HN
- 11Supercharging the Git Commit Graph III: Generations and Graph Algorithms2 people · 5 points · first shared 2018 · discussion on HN
- 12Cloud-hosted Mac agents for CI/CD pipelines2 people · 5 points · first shared 2017 · discussion on HN
- 13New Navigation for Visual Studio Team Services (VSTS)2 people · 2 points · first shared 2018 · discussion on HN
- 14VSTS and GitHub2 people · 1 points · first shared 2018 · discussion on HN
- 15A security vulnerability in Git that can lead to arbitrary code execution1 people · 402 points · first shared 2018 · 83 comments on HN
What HN people wrote when they linked it
zaat · 2018-03-27
Git is great, but no, actually it didn't scale and they had to develop GVFS for it to work. (https://blogs.msdn.microsoft.com/devops/2017/02/03/announcing-gvfs-git…
int_19h · 2019-01-28
Async/await has a logical stack that is distinct from the physical stack(s). Quality tooling would show you said logical stack instead of a mish-mash of physical stacks from different async functions that happen to be intermingled on the current thread. Example:
https://blogs.msdn.microsoft.com/devops/2013/07/01/debugging-asynchron…
So you don't need to deal with "inscrutable callback state machines" anymore so than you need to deal with the assembly labels and jumps that your for-loop compiles into.
joshka · 2019-01-26
> The ability to show descendents of a check-in.
This is interesting. I wonder if the same thing could be achieved fairly simply in git though by keeping an extra area in the .git folder that handles reversing / denormalizing the DAG for some of the things that these reports show.
Microsoft are innovating in this area (bringing the improvements that they have in VSTS to the client). There's a good series of blog posts on this at https://blogs.msdn.microsoft.com/devops/tag/git/ (first article https://blogs.msdn.microsoft.com/devops/2018/06/25/supercharging-the-g…
zubspace · 2019-01-08
Does this somehow apply to git-lfs, too?
This is quite important for game development, where binary assets grow faster than you can think. Azure DevOps includes unlimited, private lfs-storage for small teams. [1]
I also wonder how microsoft prevents abuse in such an environment, but that's another question...
[1] https://blogs.msdn.microsoft.com/devops/2015/10/01/announcing-git-lfs-…
csdreamer7 · 2018-07-24
Doesn't the Git Virtual File system that Microsoft is contributing to Git take care of this?
https://blogs.msdn.microsoft.com/devops/2017/02/03/announcing-gvfs-git…
Edit: don't just down vote. If you have a problem with my comment, tell me why.
stolee · 2018-07-17
Do you mean `git branch --contains` or `git branch -vv`? There are many options to `git branch` that cause Git to be very slow.
The commit-graph feature in general will make these faster by reducing time spent parsing commits. You can compute a commit-graph right now if you have Git 2.18 installed: https://blogs.msdn.microsoft.com/devops/2018/06/25/supercharging-the-g…
Generation numbers will make these operations much faster in Git 2.19. Here are the related commits:
`git branch --contains`: https://github.com/git/git/commit/f9b8908b85247ef60001a683c281af0080e9…
`git tag --contains`: https://github.com/git/git/commit/819807b33f820dc17d96f043747daf18c5e3…
taspeotis · 2018-06-20
Microsoft’s VSTS is getting a facelift [1] so watch that space to see what GitHub might end up looking like.
[1] https://blogs.msdn.microsoft.com/devops/2018/06/19/new-navigation/
spiralx · 2018-06-05
Something this article goes into in more detail with regards to Git:
https://blogs.msdn.microsoft.com/devops/2017/05/30/optimizing-git-beyo…
pjc50 · 2018-06-05
They did, it was called Visual Studio Team Services.
https://blogs.msdn.microsoft.com/devops/2018/06/04/vsts-github/
detaro · 2018-06-04
Microsoft had a "look at what we did for git last year" post in january, most of that seems OS-independent performance work: https://blogs.msdn.microsoft.com/devops/2018/01/11/microsofts-performa…
terandle · 2018-06-04
This is their blog post on it
https://blogs.msdn.microsoft.com/devops/2018/04/27/vsts-public-project…
arcticfox · 2018-06-01
Their MacOS implementation that they linked to is pretty cool and understandable even for a filesystem lay-person.
https://blogs.msdn.microsoft.com/devops/2018/03/15/gvfs-for-mac/
gaius · 2018-05-12
trentnelson · 2018-04-11
Similar concept to GVFS: https://blogs.msdn.microsoft.com/devops/2017/02/03/announcing-gvfs-git…
albertzeyer · 2017-12-10
Microsoft has released some tools to support that for Git. https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-rep… https://blogs.msdn.microsoft.com/devops/2017/05/30/optimizing-git-beyo…
hdhzy · 2017-11-17
No, they needed to do some modifications to the git suite of tools. Generally git expects all objects to be on disk and Microsoft wanted to have sparse checkouts of files in a specific revision.
Not really polluting but rather having some objects be fetched only on demand.
Source: https://blogs.msdn.microsoft.com/devops/2017/02/03/announcing-gvfs-git…
> In addition to the GVFS sources, we’ve also made some changes to Git to allow it to work well on a GVFS-backed repo, and those sources are available at https://github.com/Microsoft/git.
For the record as far as I understand GVFS the article is correctly using git vs Github.
mikepurvis · 2017-11-17
I think once you're checked out, you're still distributed as far as being able to make and push commits which modify the files you have. But obviously someone can't clone files from you which you don't yourself have.
See previous articles which discussions:
https://blogs.msdn.microsoft.com/devops/2017/02/03/announcing-gvfs-git…
https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-rep…
ahupp · 2017-08-10
I think it's referring to this: https://blogs.msdn.microsoft.com/devops/2017/02/03/announcing-gvfs-git…
ethomson · 2019-01-26
> Can you provide a reference? I was searching a bit and only things I found was bugs in windows[1] for git lfs.
Apologies, I hastily mistyped, I meant 500 GB, not 5. (5 GB is about the size of my repository, which is not really so big at all and certainly something git can cope with on its own).
This series of articles should illustrate some of the issues that VFS for Git tries to address. ("GVFS" is now called "VFS for Git".)
https://docs.microsoft.com/en-us/azure/devops/learn/git/technical-scal…
And this is a series of articles from an engineer who's been working on improving perf in large repositories in general, not strictly related to the Windows repository:
https://blogs.msdn.microsoft.com/devops/2018/06/25/supercharging-the-g…
> Windows codebase has 3.5 million files and its repo is 300GB in size. It is not normal. This is google or MS type of problem and not average git user. MS instead changing workflow decided to create GVFS[2]
I didn't say it was normal. Indeed it's uncommon. I said it wasn't pathological.
zellyn · 2018-01-25
I totally agree about the unnecessary complexity of the git workflow.
If you haven't seen it before, check out gitless: actual research-backed simplification of the git commandline workflow.
Reduced views of files and history are super useful, but unfortunately don't work in the case where you've browsed your way to a part of the code that you seldom work on, since you're less likely to have loaded them into your narrow slice: it's still nice to be able to fix spelling mistakes far afield, and the web editing helps nicely for that.
What would help with the cases you describe, though, is a synthetic filesystem view, cache-faulted in as needed, like the one Microsoft is building. I'm pretty excited about where that's heading. https://github.com/Microsoft/GVFS for the project, https://blogs.msdn.microsoft.com/devops/2017/11/15/updates-to-gvfs/ for the announcement they're going to be working with Github. Pretty cool stuff.