By implementing Git in its developer tools, Microsoft is using GPL-licensed software -- and perhaps ending its war on open source

InfoWorld|Feb 1, 2013

News broke Wednesday about Microsoft adding support for Git to Visual Studio, both in the client -- so that it can be used to work against any Git DVCS (distributed version control system) such as Gitorious or GitHub -- and on the server. The upshot is twofold: Those using Microsoft's proprietary centralized version control have a new escape route, and GitHub has a new competitor.

For me, the really interesting dimensions of this news were not so much about Microsoft's embrace of distributed version control, which is a simple matter of market forces, but rather what support for Git says about Microsoft and open source.

Microsoft has been on a charm offensive toward the open source community-of-communities for several years. Before that, it had been simply offensive, as epitomized by CEO Steve Ballmer's infamous assertion that Linux is a cancer -- to my knowledge, an epithet he's never withdrawn. (For more on Microsoft's historic hostility toward open source, check out the notorious Halloween Documents.) But at some point in the last few years, Microsoft's strategists finally wised up to the fact that, while they still feared open source, it was better to make peace.

Then the Visual Studio news contained multiple elements, and Microsoft is clearly aware of the novelty they represent. First, Microsoft's product team leader felt the need to point out a lack of hatred toward open source in his blog: "In my own area, we dabbled (and in some cases made missteps) as we’ve learned our way [but] this is a pretty big milestone for us. This is certainly the first time that my team has engaged so deeply in an existing OSS project."

Second, and much more interesting at a technical level, Microsoft has chosen to implement Git rather than invent its own DVCS. The company has implemented it using an open source library, libGit2, which is also extensively employed by GitHub -- a competitor to Microsoft's Team Foundation Service. If collaboration with a competitor wasn't remarkable enough, libGit2 is licensed under the GPLv2, once declared cancerous by Ballmer as mentioned above. That's been made possible by a generous "linking exception" in the libGit2 licensing, but remains surprising to anyone who's observed Microsoft's historical antipathy toward the GPL. Microsoft isn't just using the code -- it's also listed as a contributor.