Microsoft has been making some historical announcement in the recent past and one of the was to shift the Windows development team to use the Git version of the control system for the Windows development. It’s three months since the announcement and Microsoft have already migrated nearly 90% of the code. The Git repo is touted to be the largest in the world and it will enable Git to scale what this means is that very large
Windows Code Git Migration
The Git repo is touted to be the largest in the world and it will enable Git to scale what this means is that very large repos will be virtualised in both the .git folder and the working directory. Furthermore, instead of downloading the entire repo it dynamically downloads only the required part.
The Windows code base is approximately 3.5M files and, when checked in to a Git repo, results in a repo of about 300GB. Further, the Windows team is about 4,000 engineers and the engineering system produces 1,760 daily “lab builds” across 440 branches in addition to thousands of pull request validation builds.
Since 2013 Microsoft has been using the SourceDepot which is a customized version of the Perforce version system. Since the SourceDepot could not handle the Windows projects in entirety the code was segregated into 65 repositories. The new layer produced a unified view of all the code but strictly speaking it failed to fall in line with the OneCore’s module boundaries. Ever since Microsoft migrated to a “Windows as a Service” with the Windows 10 it has been wanting a system that would sync up better with the OneCore module.
Ultimately despite the segregation and the measures to squeeze in more than 3.5-million files the SourceDepot had been maxed to the limit. In fact, Microsoft had yet another Herculean task, to delete the unused branch. Also, the performance deteriorated and the average git status went all the way up to 11 seconds.
Apart from changing the Git, yet another thing Microsoft has done is to build a Git proxy server in order to help the remote teams with higher latency, lower bandwidth connects to the Windows code seamlessly.
The new Windows repository comes with around 4,400 active branches, 8,500 code pushes every day and 6,600 code reviews as well. A staggering 1,760 Windows builds are created every day. Microsoft has currently forked the native Git system but has decided on returning to the mainline as things move forward.
You can read the full post on MSDN.