Slashdot Mirror


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

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.

29 of 221 comments (clear)

  1. Linus Wins Again by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re:Linus Wins Again by chispito · · Score: 5, Funny

      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.

      --
      The Daddy casts sleep on the Baby. The Baby resists!
    2. Re:Linus Wins Again by fisted · · Score: 2

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

    3. Re: Linus Wins Again by Anonymous Coward · · Score: 5, Insightful

      Software is not a zero sum game. Windows' wins are not Linux's losses.

    4. Re: Linus Wins Again by Anonymous Coward · · Score: 3, Funny

      He helped create the perpetual year of the windows desktop

    5. Re:Linus Wins Again by scdeimos · · Score: 5, Interesting

      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.

    6. Re:Linus Wins Again by Rutulian · · Score: 3, Interesting

      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).

    7. Re:Linus Wins Again by Anonymous Coward · · Score: 2, Insightful

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

      Actually, he wrote a kernel...

    8. Re:Linus Wins Again by Anonymous Coward · · Score: 5, Funny

      Stallman's not dead, he just smells that way.

    9. Re:Linus Wins Again by Anonymous Coward · · Score: 3, Informative

      >embrace-extend-extinguish

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

    10. Re: Linus Wins Again by Anonymous Coward · · Score: 2, Funny

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

    11. Re:Linus Wins Again by OrangeTide · · Score: 5, Interesting

      We have Linus' famous picture on posters and t-shirts at my work. (NVIDIA)
      My boss was sitting just a few feet beyond the camera when Linus had his rant too. It was epic, many of the Nvidians were squirming in their seat.

      --
      “Common sense is not so common.” — Voltaire
    12. Re:Linus Wins Again by m.alessandrini · · Score: 2

      Yeah, someone once said something like: the quality of code is measured in how many lines you delete at the end of the day, not how many you add (I can't find the exact reference).

    13. Re:Linus Wins Again by exomondo · · Score: 2

      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 them not to so that support for GVFS could end up in mainline Git which would reduce maintenance and allow people to use the same Git client/server whether GVFS is present or not.

      If they do as is suggested in TFA and develop in the open that would be hugely useful to anybody with large repositories that want to use Git.

    14. Re:Linus Wins Again by TheRaven64 · · Score: 3, Interesting

      And Microsoft is not using Linus' implementation of git, they have written their own (permissively licensed) version written in C#. So they're using their own VCS, which uses ideas from BitKeeper, and is interoperable with git.

      --
      I am TheRaven on Soylent News
  2. Re:What were they using before? by DaHat · · Score: 2

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

  3. Re:Distributed Hg. by Daltorak · · Score: 4, Informative

    How come they didn't go with Mercurial?

    Some obvious reasons off the top of my head:

    1. - Visual Studio and TFS already have full CLI, GUI, and web-based support for Git. No such tooling exists for Mercurial.
    2. - Microsoft has contributed to libgit2 for years.
    3. - Mercurial is written in Python -- it's a small thing, but it's one more thing for a dev to maintain on their system.
    4. - Git is easier to hire for.

    You can also make the argument that Git was designed from the beginning to be suitable for developing an operating system. Or, put more bluntly, it was designed to be used by programmers who are smart enough to work on an operating system, Yes, the Mercurial CLI is generally easier to come to grips with, but that isn't a compelling enough reason on its own.

    Keep in mind also that the overall direction of Mercurial is increasingly being driven by the needs of Facebook's dev teams. Which is great to see, in the sense that they're returning their enhancements to the community..... but by and large they're building web properties, not operating systems, so the priorities may be different.

  4. Re:VSS ? by Gravis+Zero · · Score: 5, Funny

    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.

    --
    Anons need not reply. Questions end with a question mark.
  5. Something's wrong by Drunkulus · · Score: 5, Funny

    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?

  6. Re:Distributed Hg. by Anonymous Coward · · Score: 2, Funny

    git's interface wasn't "designed" at all, and it shows badly. That's why there's almost one tutorial on the web per person who figured out how to use it.

    The article summary also leaves out the minor point that MS had to write an entire abstraction layer underneath Git because it's so incapable of handling a large repository. And yes, there are actually good reasons to have a "monolithic" repository. Just because your favorite version control system can't do something doesn't mean it's a bad idea.

  7. Cool stuff by swillden · · Score: 5, Interesting

    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.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    1. Re:Cool stuff by waveclaw · · Score: 2

      Jakub's Mastering Git book 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.

      The git wrapper and workflows used by the Linux project can be seen as just the demonstration of one implementation. Collaboration and hosting sites like GitHub and GitLab show that you can turn a git repository into a project management tool. People have even built code review tools out of git (Critic, git-issues, etc.)

      I wonder if Microsoft could implement something like etckeeper for the registry? (It would be nice to be able to run git blame after corruption by some vendor's installer.)

      I do find it odd that Microsoft is switching to git so the team can put Windows into a single, giant repository while trying to modularize the product. One would think that the prior Perforce based system would have suited the modularization goal. That was forcing multiple repositories on the developers to meet the scale of the codebase. Perhaps the intent is to centralize then reorganize and break out into logical modules again? (It could be a control freak VCS team that is jumping at the chance to become the gatekeepers.)

      The article does mention that "the company wanted to develop a single engineering system ('1ES'), spanning not just version control, but bug tracking, building, and more, that could span the entire company. " This makes the next version of Team Foundation Server sound a lot like GitHub Enterprise from Microsoft. Should Microsoft offer this 1ES environment for sale? It could certainly add a twist to the corporate on-premise or could-based git hosting market.

      --

      "You cannot have a General Will unless you have shared experiences. You cannot be fair to people you don't know."
  8. Re:Distributed Hg. by Rutulian · · Score: 4, Insightful

    The article summary also leaves out the minor point that MS had to write an entire abstraction layer underneath Git because it's so incapable of handling a large repository.

    Not completely true. They call it GVFS, but all it really does is prevent the entire repository from being downloaded when you clone it. Instead it downloads "only what you need". And there are a couple of patches to make git aware that this is happening, so that it stats only what is local and not the whole repository. One might argue that since the developer teams are not working on the entire codebase at once but rather on, let's call them "modules", within the larger repository, then the repository itself should be made more modular that match this development pattern. That would be more inline with the way Git was designed in the first place, and these extensions would not be as necessary. Still, to have the capability is nice.

    Just because your favorite version control system can't do something doesn't mean it's a bad idea.

    No, but pick the right tool for the job. If you are not developing modular, self-contained code in a decentralized fashion, don't use a source control system designed with those explicit goals in mind.

    Notice how LibreOffice splits up their fairly large codebase into several smaller repositories,
    https://github.com/LibreOffice

    Seems to work pretty well for them.

  9. inaccurate by lucm · · Score: 5, Informative

    You obviously didn't RTFA. They had to create this GVFS thing because their code base is huge and they don't want to sync hundreds of gigs between remote locations. Also they were not using VSS before switching to Git, they were using Perforce.

    It's not a WTF. It's a great achievement and will probably become a standard component of large-scale git repos. If you ever had to deal with huge repos that are used by teams in many timezones you'd understand that.

    For reference, the Linux kernel git repo is about 6GB all in. The Windows git repo is 300GB. We can all guess that in that 300GB there's a fair amount of dead wood but still, in an era where storage is dirt cheap, one shouldn't have to trim down a code source repo because the vcs can't keep up.

    --
    lucm, indeed.
    1. Re:inaccurate by Bite+The+Pillow · · Score: 3, Interesting

      I won't spend time searching for you, but there are blog posts from softies describing the various attempts over the years to segregate code, and this is the result of that failure.

      The evolution of windows from a DOS based illusion to a full client server model on a single computer resulted in a lot of bad decisions. Yes I'm aware of os2 and the parentage of XP via NT, but certain allowances were made so that Windows 98 and ME software would work on XP.

      There was no management and grand plan. Reading Charles Petzold and Raymond Chen make that clear. The effort continues. But this is a normal software company trying to ship product, not meet the ivory tower ideal. Hardly a defense, but the info is all out there, mostly documented in this switch to git. Mark Russinovich, SysInternals, Alex Ionescu have the unofficial story, in a sense. How we got here is clear if you know the history.

  10. Re:But they're still allowing some of us... by Grishnakh · · Score: 2

    Not using any revision control system, and instead just making copies of files before you change them and manually labeling them foo.v1.1.c and the like, is better than ClearCase.

  11. Time to let go by lucm · · Score: 3, Insightful

    If you try to make Git work like Subversion, you're doing it wrong. Stick with Subversion (or cvs for that matter) if that's what makes you comfortable and if you want to obsess about stuff like branches history. Otherwise read a good tutorial and pick a mainstream branching strategy such as Git flow.

    Git branches are fantastic. They make life easier by allowing you to focus on the code without having to deal with side effects of Subversion-style branches, such as broken paths in config files. As for directory renames, if you use Git properly there's no problem.

    --
    lucm, indeed.
  12. Re:But they're still allowing some of us... by lucm · · Score: 2

    "SourceSafe" is even funnier than "Microsoft Works"

    --
    lucm, indeed.
  13. Re: What were they using before? by lucm · · Score: 3, Insightful

    Get real. Windows has owned the market for 25+ years already and the Western Civilization has become consistently more computerized during that period, which definitely didn't happen because of OpenVMS or QNX or some other wonder of software engineering.

    Besides John Deere or Tupperware, not a lot of products have enjoyed such stability.

    --
    lucm, indeed.