Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    B

    Brian Harry

    blogs.msdn.microsoft.com/bharry · Personal blog · on HN since 2016

    Brian Harry, a Microsoft executive over Visual Studio Team Services, writes about developer tools, Git at scale, and open sourcing Microsoft projects.

    Visit blogHN submissions
    DevOps & CloudOpen Source & LinuxTech Industry
    What HN says

    HN commenters mostly cite his post on Windows moving to one huge Git repo with GVFS as evidence of how Git can be scaled.

    Stats for nerds
    36HN people shared it
    21linked in comments
    1.7Kstory points
    Jan 2019last shared
    2016people per year2019

    Top posts on HN

    1. 1
      The largest Git repo
      15 people · 1.1K points · first shared 2017 · 402 comments on HN
    2. 2
      Shutting down CodePlex
      3 people · 327 points · first shared 2017 · 121 comments on HN
    3. 3
      Scaling Git, and some back story
      7 people · 143 points · first shared 2017 · 17 comments on HN
    4. 4
      More on GVFS
      1 person · 127 points · first shared 2017 · 77 comments on HN
    5. 5
      Open Sourcing the Visual Studio Test Platform (Brian Harry)
      5 people · 9 points · first shared 2017 · 1 comments on HN
    6. 6
      Perf Results on Scaling Git on VSTS with GVFS
      1 person · 6 points · first shared 2017 · Discussion on HN
    7. 7
      How Microsoft DevOps org creates "Self forming eng teams" at scale (2015)
      2 people · 5 points · first shared 2016 · Discussion on HN
    8. 8
      All good things…
      1 person · 3 points · first shared 2018 · Discussion on HN
    9. 9
      Microsoft Offers Hosted Linux Build Agents
      1 person · 3 points · first shared 2016 · Discussion on HN
    10. 10
      Team Foundation Server (TFS) 2017 Update 2 RTM – Brian Harry
      1 person · 2 points · first shared 2017 · Discussion on HN

    What HN people wrote when they linked it

    • TrdMay 2017

      This is a bit alarmist. If github went away or became like Sourceforge of old then we could just move to something else or do self-hosting again. Lose a chunk of the internet by moving popular software like Handbrake to GitHub? how could that happen? Most multiplatform open source software like this have copies of their source code across thousands of linux distribution mirrors.

      Also, google code never went away. It just stopped working as an active platform, but Google still keeps the archive of what already existed there, to this day:

      https://code.google.com/archive/

      Microsoft is doing the same after shutting down their Code Plex because of moving toward GitHub:

      https://blogs.msdn.microsoft.com/bharry/2017/03/31/shutting-down-codeplex/

      > At that time, CodePlex.com will start serving a read-only lightweight archive that will allow you to browse through all published projects – their source code, downloads, documentation, license, and issues – as they looked when CodePlex went read-only. You’ll also be able to download an archive file with your project contents, all in common, transferrable formats like Markdown and JSON. Where possible, we’ll put in place redirects so that existing URLs work, or at least redirect you to the project’s new homepage on the archive. And, the archive will respect your “I’ve moved” setting, if you used it, to direct users to the current home of your project.

      If there is anything to lose after GitHub's shutdown at some distant point in the…

    • bzbarskyApr 2018

      Scalability to large numbers of files and large numbers of changesets.

      For the large number of files one https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/ is one source. There's some earlier discussion of the same issue at https://news.ycombinator.com/item?id=3549679 that goes into some technical details.

      There has been some work on git since then to address some of those issues (e.g. see https://blogs.msdn.microsoft.com/bharry/2017/02/03/scaling-git-and-some-back-story/ ) but it's not clear to me that it helped enough to catch up to where Mercurial is for large repos.

      For large numbers of changesets, just try running "log" or "annnotate" on any file with a long history in git. I just did this simple experiment:

      1) hg clone https://hg.mozilla.org/mozilla-central/

      2) git clone https://github.com/mozilla/gecko-dev.git

      3) (cd mozilla-central && time hg log dom/base/nsDocument.cpp)

      4) (cd gecko-dev && time git log dom/base/nsDocument.cpp)

      It's not quite apples to apples because the git repo there has some pre-mercurial CVS history in it. But note that I'm not even using --follow for git and the file _has_ been renamed after the mercurial repo starts, so git is actually finding fewer commits than mercurial is here.

      Anyway, if I do the above log calls a few times to make sure the caches are warm, I end up seeing times in the 8s range for git and the 0.8s range (yes, 10x faster) for mercurial.

      That all said, most repos do not have millions…

    • detaroMay 2017

      their earlier blogpost goes into it a bit https://blogs.msdn.microsoft.com/bharry/2017/02/03/scaling-git-and-some-back-story/ :

      The first big debate was – how many repos do you have – one for the whole company at one extreme or one for each small component? A big spectrum. Git is proven to work extremely well for a very large number of modest repos so we spent a bunch of time exploring what it would take to factor our large codebases into lots of tenable repos. Hmm. Ever worked in a huge code base for 20 years? Ever tried to go back afterwards and decompose it into small repos? You can guess what we discovered. The code is very hard to decompose. The cost would be very high. The risk from that level of churn would be enormous. And, we really do have scenarios where a single engineer needs to make sweeping changes across a very large swath of code. Trying to coordinate that across hundreds of repos would be very problematic.

      After much hand wringing we decided our strategy needed to be “the right number of repos based on the character of the code”. Some code is separable (like microservices) and is ideal for isolated repos. Some code is not (like Windows core) and needs to be treated like a single repo.

    • KallDrexxNov 2017

      I can't see it being easy to take a 20 year massive code base and split it up into components that are so isolated enough they can live in different repositories smoothly.

      As they say in: https://blogs.msdn.microsoft.com/bharry/2017/02/03/scaling-git-and-some-back-story/

      The first big debate was – how many repos do you have – one for the whole company at one extreme or one for each small component? A big spectrum. Git is proven to work extremely well for a very large number of modest repos so we spent a bunch of time exploring what it would take to factor our large codebases into lots of tenable repos. Hmm. Ever worked in a huge code base for 20 years? Ever tried to go back afterwards and decompose it into small repos? You can guess what we discovered. The code is very hard to decompose. The cost would be very high. The risk from that level of churn would be enormous. And, we really do have scenarios where a single engineer needs to make sweeping changes across a very large swath of code. Trying to coordinate that across hundreds of repos would be very problematic.

    • wilatmsftMay 2017

      Quoting Brian Harry from a comment response at https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/

      "It depends a great deal on the operation. SourceDepot was much faster at some things – like “sd opened”, the equivalent of “git status”. sd opened was < .5s. git status is at 2.6s now. But SD was much slower at some other things – like branching. Creating a branch in SD would take hours. In Git, it's less than a minute. I saw a mail from one of our engineers at one point saying they'd been putting off doing a big refactoring for 9 months because the branch mechanics in SD would have been so cumbersome and after the switch to Git they were able to get the whole refactoring done in a topic branch in no time.

      On an operation, by operation basis, SD is still much faster than our Git/GVFS solution. We're still working on it to close the gap but I'm not sure it will ever get as fast at everything. The broader question, though is about overall developer productivity and we think we are on a path to winning that."

    • ChyzwarJan 2019

      > It has nothing to do with the Windows filesystem; Git simply cannot support a 5 GB working tree on any filesystem.

      Can you provide a reference? I was searching a bit and only things I found was bugs in windows[1] for git lfs.

      > You can call this "pathological" but this throws a lot of shade on monorepos without much critical examination of how or when they might be useful.

      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]

      [1] https://github.com/git-lfs/git-lfs/issues/2434
      [2] https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/

    Related

    Azure DevOps Blogblogs.msdn.microsoft.com/devops41 people

    A security vulnerability in Git that can lead to arbitrary code execution

    Azure DevOps Blog
    Company · last shared 2020
    Microsoft MSDN Blogsblogs.msdn.com1.6k people

    Why I Left Google

    Microsoft MSDN Blogs
    Company · last shared 2023
    Visual Studio Blogblogs.msdn.microsoft.com/visualstudio70 people

    Microsoft Joins the Eclipse Foundation

    Visual Studio Blog
    Company · last shared 2018
    GitHub Bloggithub.blog1.8k people

    YouTube-dl's repository has been restored

    GitHub Blog
    Company · last shared 2026
    Microsoft Cloud Blogscloudblogs.microsoft.com133 people

    exFAT in the Linux kernel

    Microsoft Cloud Blogs
    Company · last shared 2024
    Drew DeVaultdrewdevault.com633 people

    Firefox is on a slippery slope

    Drew DeVault
    Personal · last shared 2026
    Joey Hessjoeyh.name173 people

    Moreutils: A collection of Unix tools that nobody thought to write long ago

    Joey Hess
    Personal · last shared 2026
    Vincent Driessennvie.com118 people

    A note of reflection after 10 years of “A successful Git branching model”

    Vincent Driessen
    Personal · last shared 2026