Microsoft non è solo diventato un entusiasta open-source utente; la società è ora con il sistema di controllo versione Git per la costruzione di Finestre. Una volta che il primo esempio di lo sviluppo di software proprietario è ora di affidarsi open source per creare il suo marchio di fabbrica del sistema operativo. Chi l’avrebbe mai detto?
In realtà, si potrebbe avere se avete prestato attenzione. Torna nel 2013, Microsoft ha annunciato la sua tabella di marcia per l’aggiunta del supporto per Git per il suo sviluppo Visual Studio-suite di strumenti e di Team Foundation app-il ciclo di vita delle tecnologie di gestione. Più tardi quello stesso anno, Microsoft Technical Fellow e TFS capo Brian Harry ha annunciato che Microsoft sarebbe appoggio Git come la sua distribuito il codice sorgente-piattaforma di controllo.
Non tutti in Microsoft piaciuta molto questa idea, ma come Harry bloggato, al momento, “il più abbiamo guardato, più sembrava la cosa giusta da fare”.
Come il passare degli anni, Microsoft ha anche fatto il suo significativo open-source contributi a Git. Nel 2017, Microsoft open-source Git File System Virtuale (GVFS), sotto Licenza MIT. GVFS abilitato Microsoft team di prodotto per scalare il client Git di trattare con i suoi mostruosamente grande codice sorgente di pronti contro termine.
Da allora, Microsoft ha iniziato il porting di tutti-e dico tutti-il codice di Windows per Git e GVFS. Il lavoro è ora in gran parte fatto e Microsoft si sta godendo i frutti del lavoro a creare la più grande repository Git sul pianeta.
Harry ha scritto: “Negli ultimi 3 mesi si sono in gran parte completato il roll-out di Git/GVFS per il team di Windows di Microsoft”. Che non era un piccolo lavoro. “Il codice di Windows di base è di circa 3,5 M di file e, quando il check-in per un repo Git, si traduce in un repo di circa 300GB.”
Questo è solo il file. “Il team di Windows è di circa 4.000 gli ingegneri e il sistema di engineering produce 1,760 quotidiano “laboratorio costruisce” in tutto 440 rami, oltre a migliaia di tirare richiesta di convalida costruisce. Tutte e 3 le dimensioni (numero di file, repo dimensioni e attività), in modo indipendente, fornire scoraggiante scala sfide e presi insieme, essi rendono incredibilmente difficile creare una grande esperienza.”
Harry ha ammesso questa è stata una terribile esperienza. “Il primo, e più grande, il salto è avvenuto il 22 Marzo, quando abbiamo lanciato Windows OneCore team di circa 2.000 ingegneri. Quelli di 2.000 ingegneri hanno lavorato in Origine Deposito di venerdì, è andato a casa per il fine settimana e sono tornato lunedì mattina per una nuova esperienza basata su Git. Persone nella mia squadra sono stati con il fiato sospeso l’intero fine settimana, pregando non avevamo intenzione di essere preso a pugni da un gruppo di facinorosi di angry ingegneri che si sono presentati lunedì in grado di ottenere il lavoro fatto.
“Con mia grande sorpresa, onestamente, è andato molto bene e gli ingegneri sono stati produttivo dal primo giorno.”
Non è stata una navigazione tranquilla. “Abbiamo scoperto che la prima settimana che la nostra interfaccia utente per tirare le richieste e unire la risoluzione dei conflitti semplicemente non scala di modifiche che di grandi dimensioni. Abbiamo dovuto faticare per virtualizzare le liste e gradualmente recuperare dati in modo che l’interfaccia utente non solo blocco. Abbiamo avuto è stato risolto nel giro di un paio di giorni e, in generale, il sentimento che settimana è stato molto meglio di quanto ci aspettassimo.”
Oggi, quasi tutte le Finestre sviluppatori stanno lavorando su Git. Nei prossimi mesi, gli ultimi 500 programmatori si sposta a Git.
Hanno tutte le ragioni per fare la mossa. Secondo Harry, “la scala del sistema è davvero incredibile. Diamo un’occhiata ad alcuni numeri.”
Ci sono più di 250.000 raggiungibile Git commit nella storia per questo repo, negli ultimi 4 mesi.8,421 spinge al giorno (in media)di 2.500 tirare le richieste, con oltre 6.600 revisori al giorno (in media)4.352 le attivo argomento branches1,760 versioni ufficiali al giorno
Microsoft ha continuato a ottimizzare GVFS per l’utilizzo in remoto. Harry ha spiegato, “Il Team di Windows Servizi di conto si trova in un data center di Azure sulla costa occidentale degli stati UNITI … all’ 80 ° percentile per il Clone di Windows, ingegnere 127 secondi. Dal momento che una percentuale elevata dei nostri Windows ingegneri di Redmond, che numero è dominato da loro.
“Abbiamo eseguito un test da Nord Carolina office (che è più lontano e ha una molto più bassa larghezza di banda di rete). Un clone della Carolina del Nord con nessun server proxy sono voluti quasi 25 minuti. Con un proxy configurato e aggiornato, ci sono voluti 70 secondi (più veloce di Redmond, perché il team di Redmond non usare un proxy e devono andare a centinaia di chilometri su internet Azzurro, data center). 70 secondi vs quasi 25 minuti è quasi il 95% di miglioramento.”
Impressionato? Microsoft sarà felice se si è utilizzato GVFS. Dopo tutto, GVFS è un progetto open-source e si sono invitati a provare. Tutto quello che dovete fare è scaricare e installare, creare un Visual Studio Team account di Servizi con un repo Git, e si sta bene ad andare. Altre Git programmi includono Atlassian SourceTree e Git Torre.
Ironia della sorte, non c’è attualmente un Linux client Git che supporta GVFS, ma è interna di supporto Microsoft per Linux e Mac supporto. Saeed Noursalehi, un programmatore di Microsoft manager, ha scritto sul GVFS lista di bug “Sì, l’abbiamo sicuramente voglia di supporto Mac e Linux, e stiamo cercando persone con i sistemi di file esperienza su queste piattaforme.”
Linus Torvalds, Linux e Git creatore, una volta disse: “Se Microsoft fa mai le applicazioni per Linux significa che ho vinto”. Penso che Microsoft usare Git per creare Windows conta come una vittoria.
Storie Correlate:
Microsoft è Un Sistema di Engineering porta Git File System Virtuale per il massesWhy Microsoft si sta trasformando in un open-source companyFrom open-source hater di no. 1 ventola: Microsoft ora cime di Google, Facebook in GitHub collaboratori