Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Windows Microsoft Programming Software

Windows Switch To Git Almost Complete: 8,500 Commits and 1,760 Builds Each Day (arstechnica.com) 221

An anonymous reader quotes a report from Ars Technica: Back in February, Microsoft made the surprising announcement that the Windows development team was going to move to using the open source Git version control system for Windows development. A little over three months after that first revelation, and about 90 percent of the Windows engineering team has made the switch. The Windows repository now has about 4,400 active branches, with 8,500 code pushes made per day and 6,600 code reviews each day. An astonishing 1,760 different Windows builds are made every single day -- more than even the most excitable Windows Insider can handle.
This discussion has been archived. No new comments can be posted.

Windows Switch To Git Almost Complete: 8,500 Commits and 1,760 Builds Each Day

Comments Filter:
  • Linus Wins Again (Score:5, Insightful)

    by Anonymous Coward on Wednesday May 24, 2017 @07:17PM (#54480873)

    Say what you will about Mr. Torvalds, but that magnificent bastard has smacked down many a foe over the years. This is really sweet. If the only thing Linus ever did was to invent git, then that would have been enough. But no, he had to write an operating system besides. When history is written, Linus's inspiration will shine forth from the Pantheon of greats.

    • by chispito ( 1870390 ) on Wednesday May 24, 2017 @07:40PM (#54480993)

      When history is written, Linus's inspiration will shine forth from the Pantheon of greats.

      And those historians should take caution, lest they call his operating system "Linux" and are forevermore haunted by Stallman's ghost.

    • by fisted ( 2295862 )

      So Linus essentially helped streamline Windows development. Yeah, what a win.

    • Re:Linus Wins Again (Score:5, Interesting)

      by scdeimos ( 632778 ) on Wednesday May 24, 2017 @08:19PM (#54481169)
      If you read TFA you'd have noticed that Microsoft isn't using Vanilla Git. Using their normal embrace-extend-extinguish mindset they've created their own GVFS (Git Virtual File System) and forks of Git server and client that only work in a GVFS-enabled ecosystem so that they can handle the massive number of files in the Windows source code.
      • Re:Linus Wins Again (Score:4, Interesting)

        by Rutulian ( 171771 ) on Wednesday May 24, 2017 @08:59PM (#54481367)

        Interesting read, actually. They call it GVFS, but it is really just a more asynchronous mode for local git repositories. Traditional git downloads the whole repository as a local copy. It's a feature by design because it allows a developer to work completely offline and only do a git pull when ready to merge branches. It sounds like the Windows repository is a) large and monolithic, so a given developer team does not work on the entire codebase, and b) they frequently sync their changes to the central repository (ie: it is not really decentralized), so the traditional git model has shortcomings for them. One can argue about the structure of the Windows repository, but GVFS sounds like a nice feature to have regardless. The only question I have is...

        The third thing the company has done is build a Git proxy server

        Why didn't they just clone the Azure repository to somewhere on the East Coast? Git is designed to handle this type of replication, so why did they write a "proxy server" (not entirely sure what they mean by that).

        • by sodul ( 833177 )

          Why didn't they just clone the Azure repository to somewhere on the East Coast? Git is designed to handle this type of replication, so why did they write a "proxy server" (not entirely sure what they mean by that).

          Maybe to avoid merge conflict resolution required when you are decentralized. With a proxy model at least you can guarantee some form of locking. As you pointed out they do not truly embrace the full decentralized nature of git since in a corporate environment it is not appropriate due to the need to lock read and write access to certain sensitive files if only for government compliance reasons. Yes you could split the repository in multiple small chunks that are independent but when the system in the end n

      • Re: (Score:3, Informative)

        by Anonymous Coward

        >embrace-extend-extinguish

        it's MIT license, you are free to make your own fork: https://github.com/Microsoft/GVFS

      • by Quietti ( 257725 )
        Ah so they adopted GNOME's filesystem abstraction layer? ;)
      • So Windows is so much more complex than Linux, that it cannot be handled by vanilla Git like the other OS? I was thinking the opposite, unlike Windows Linux includes code for almost all the existing hardware platforms out there, and all the hardware drivers already in the kernel, just to name something.
        • by mysidia ( 191772 )

          But the Windows tree includes cool art media like Dancing Pigs screen savers, right?

        • by deKernel ( 65640 )

          You do realize that Linux is just the kernel right? Windows includes a kernel plus a whole lot more like a GUI and userspace. Sheesh people think about it. The closest there is in the free software world would be the BSDs where they include not only the kernel but the userspace....minus the GUI. So now imagine taking the Linux kernel, all the bintools, X and a single desktop (Gnome or KDE) and placing all of that into a single repo.

        • by Junta ( 36770 )

          Not more complex, just mismanaged.

          Take a typical linux distro. Hundreds of packages, each has their own repository. Many of them are git, but not all. Only one of those is the kernel, which is what people keep trying to compare.

          In MS, they have a single repo, for everytihng. This is crazy. Even in my org which has way less complexity, we have several git repositories because we know, for example, that work on one portion is not related to the other. Sure, there are cross-functional people that might t

        • So Windows is so much more complex than Linux, that it cannot be handled by vanilla Git like the other OS? I was thinking the opposite, unlike Windows Linux includes code for almost all the existing hardware platforms out there, and all the hardware drivers already in the kernel, just to name something.

          Total misunderstanding what Microsoft is doing. They have a repository of 300 GB. You know what happens if you have a 300 GB repository and type in "git clone"? A 300 GB download starts. It doesn't matter what operating system, a 300 GB download takes time.

          While git can handle this all without problems, it takes time. What Microsoft has done is added a virtual file system on top. When you clone the repository with that virtual file system, all that gets copied is the directory structure and the hashes (a

      • There's nothing EEE about that, unless you call changing some code that didn't suit your needs EEE. In which case you could criticise every fork ever for the same policy.

      • If you read TFA you'd have noticed that Microsoft isn't using Vanilla Git.

        Of course they haven't, Git can't handle repos that large particularly well (in fact very few DVCSs would be able to).

        Using their normal embrace-extend-extinguish mindset

        Extinguish what? The version control system they themselves have just moved to? That wouldn't really make much sense now would it?

        they've created their own GVFS (Git Virtual File System) and forks of Git server and client that only work in a GVFS-enabled ecosystem

        Where did you get the impression that their forks only work with GVFS? Understandably the client and server would need to be GVFS-aware but that doesn't preclude them from being used without that virtual file system and in fact it would make much more sense for th

      • GVFS was implemented because the Windows filesystem don't support the same features as the ones available for Linux. As such git is much slower on Windows. In typical Microsoft fashion, rather than fix their borked filesystem they borked their use of git instead.
        • What filesystem on Linux operates in the way that Microsoft's GVFS does? For reference they put it here [github.com]. There is the concept of virtual files already which is how cloud storage plugins work, the file is presented but how fetching and storing is handled is abstracted away, though there seems to be more to GVFS than just that.
    • Re: (Score:2, Insightful)

      by Anonymous Coward

      But no, he had to write an operating system besides.

      Actually, he wrote a kernel...

      • by Anonymous Coward

        We know already Richard, we know. Go finish Hurd, then maybe you can stop being so bitter.

  • anyone know how they managed the code before moving to Git?
    • by DaHat ( 247651 )

      Source Depot... which is a modified version of Perforce.

    • by sconeu ( 64226 )

      I thought they had an "eat your own dog food" policy, so I'm going to guess Team Foundation Server.

    • by lucm ( 889690 )

      It's in the article.

      At the time, Microsoft was using SourceDepot, a customized version of the commercial Perforce version control system, for all its major projects.

  • When did they stop using Visual Source Safe ?
    • Re:VSS ? (Score:5, Funny)

      by Gravis Zero ( 934156 ) on Wednesday May 24, 2017 @08:00PM (#54481085)

      When did they stop using Visual Source Safe ?

      Microsoft Visual SourceSafe was first released in 1994, so by my estimate they stopped using it in 1994.

      • by Jeremi ( 14640 )

        Microsoft Visual SourceSafe was first released in 1994, so by my estimate they stopped using it in 1994.

        Nonsense, they continue to use it to this day. It plays a prominent role in their initiation/hazing of new interns.

      • by lucm ( 889690 )

        Truth be told, Microsoft didn't create SourceSafe. They bought it. In some cases, like SQL Server or Visio, their acquisitions have been a success, but more often than not (such as SourceSafe or Dynamics AX) they have gone downhill fast.

    • by Xest ( 935314 )

      I don't think many people have been using VSS for a long time. It was replaced by TFVC (Team Foundation Version Control) back in I think about 2005 as part of TFS (Team Foundation Server).

      I don't think they ever used this for the Windows source code though. I think they were using Perforce or something.

    • by Junta ( 36770 )

      Note that while I am not going to defend VSS, while it is fun to poke at a company for not eating their own dog food, in this case it *could* make sense.

      What is appropriate for managing a project as complex as an entire operating system is not necessarily what is appropriate for 99% of their customers who want to manage code in a project.

      Just like the way MS runs Azure probably looks nothing like what they have customers run.

  • by Drunkulus ( 920976 ) on Wednesday May 24, 2017 @08:02PM (#54481095)
    I ran a git pull origin master, which seemed to work fine, but now I have a bunch of code that's copyright 1993 Digital Equipment Corporation?
  • Cool stuff (Score:5, Interesting)

    by swillden ( 191260 ) <shawn-ds@willden.org> on Wednesday May 24, 2017 @08:38PM (#54481263) Homepage Journal

    The work they've done to make Git scale to fit their needs sounds great, and I see they've open-sourced the key components. That's awesome. At the moment it looks like GVFS is Windows-only (not a big surprise -- and not a complaint; they built what they needed). I'd like to see someone port it to Linux and make this infrastructure more broadly available. It sounds like it would be much nicer to work on than the "repo" tool that Android layers on top of Git to enable managing a whole bunch of smaller repositories.

    • Microsoft released gitfs as opensource. It's there for anyone to patch.

      My guess is MS hatred is why in the opensource community

    • by waveclaw ( 43274 )

      Jakub's Mastering Git book [packtpub.com] discusses briefly that git is less a version control system in itself and more a tool for building version control systems.

      Alternative user interfaces like Zit, Cogit and Yap show that there is some merit to this view.

      Git's content-addressable data store with locally computable global identifiers can form the basis of a generic storage engine. Microsoft has created what appears to be another file system out of git. There are many other filesystem implementations [kernel.org].

      The git wrap

    • At the moment it looks like GVFS is Windows-only

      It's written in C#, which has virtual machines for Linux and OS X as well. So, if it does need to be ported, it will probably happen pretty quickly. Possibly even faster than if it was written in C/C++.

  • The Windows repository now has about 4,400 active branches, with 8,500 code pushes made per day and 6,600 code reviews each day.

    I really, really hope those 1900 unreviewed pushes are all developers just wanting to make sure their code is backed up and are pushes to private branches.

    • Review system could easily cover multiple pushes per review, the git based one we use certainly can and it's not terribly sophisticated otherwise.

  • with 8,500 code pushes made per day and 6,600 code reviews each day

    Dang. We can't get away with that where I work.

I've noticed several design suggestions in your code.

Working...