Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

Microsoft annonce Git Virtual File System (GVFS) pour Windows 10
Une solution destinée à supporter les énormes dépôts et bases de code

Le , par Coriolan, Chroniqueur Actualités
Git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2. En 2016, il s’agit du logiciel de gestion de versions le plus populaire qui est utilisé par plus de douze millions de personnes.

Au sein de Microsoft, plusieurs équipes de développement utilisent Git pour gérer d’énormes bases de code. Pour cette raison, ils font face à des problèmes de performance avec la version actuelle qui n’a pas été conçue pour de larges bases de code. À titre d'exemple, la base de code de Windows a plus de 3,5 millions de fichiers et une taille de plus de 270 GB. En exécutant la commande git checkout, il faudra attendre jusqu’à trois heures, un git clone prend plus de 12 heures et même un simple git status prend environ dix minutes pour s’exécuter. Pour éviter ces problèmes de performance, Microsoft travaille actuellement sur une solution permettant au client Git de devenir plus performant avec les énormes dépôts. La nouvelle solution s’appelle GVFS (Git Virtual File System).

Le nouveau Git Virtual File Systme (GVFS) qui apparait dans GitHub, virtualise le système de fichiers en dessous de votre dépôt et fait en sorte que tous les fichiers apparaissent comme étant présents, mais en réalité, il ne télécharge un fichier que lorsqu’il est ouvert pour la première fois. GVFS gère également la taille du référentiel à prendre en compte pour des opérations comme checkout et status, puisque tout fichier qui n’a pas été hydraté peut être ignoré en toute sécurité.

Beaucoup de firmes choisissent d’utiliser un seul dépôt pour stocker leur code, Facebook et Google en sont deux exemples notables. Recourir à un seul dépôt permet de résoudre le problème “diamond dependency” ; Rachet Povin de Google a longuement parlé des avantages et limites de cette approche dans cette vidéo sur YouTube. Plusieurs dépôts créent des problèmes de tout genre, de telle façon que Google a choisi d’avoir un super dépôt pour toute l’entreprise. Si Windows à un seul dépôt, beaucoup d’autres services ont plusieurs petits dépôts comme les projets OSS sur GitHub.


Les équipes de Microsoft avaient auparavant essayé Git LFS (Git Large File Storage), mais cette solution n’a pas aidé à résoudre les problèmes que les développeurs ont rencontrés à cause de l’énormité du dépôt de Windows. Trois grandes raisons ont empêché le passage de Windows à Git :
* Des fichiers énormes : LFS permet d’adresser cela
* Beaucoup de fichiers - LFS ne permet pas de résoudre ce détail. 1 000 000 de petits fichiers sur Git produisent des status scan de façon extrêmement lente (10 minutes pour exécuter un status scan). Briser la base de code existante va prendre des années d’effort, pour cette raison, la réduction du nombre de fichiers n’a pas été une solution possible ou pratique.
* Une multitude de branches - LFS n’a pas résolu ce problème, mais GVFS également, alors les équipes ont dû implémenter une autre solution. Des milliers d’ingénieurs travaillent sur Windows et chacun d’eux à plus de dix branches. Il est estimé qu’il y a 100 000 branches par dépôt.

Avec GVFS, un clone va prendre seulement quelques minutes et non pas plusieurs heures. Microsoft a déjà introduit des changements à Git afin qu’il puisse marcher proprement sur un dépôt GVFS. L’utilisation de GVFS requiert Windows 10 Anniversary Update ou une version plus récente et peut être utilisé avec Visual Studio 2015 Community Edition ou une version plus récente. Bien qu’il soit disponible en essai, GVFS est toujours en développement, a informé Microsoft. Il s’appuie toujours sur un driver de système de fichiers en préversion avec des fichiers binaires qui sont également disponibles en préversion en tant que paquet NuGet.

Source : blog Microsoft

Et vous ?

Qu'en pensez-vous ?
Avez-vous rencontré des problèmes similaires avec Git ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Offres d'emploi IT
Ingénieur moa logiciel H/F
Safran - Ile de France - Villaroche
Expert Technico Fonctionnel Sharepoint H/F
Safran - Ile de France - Corbeil (91)
Responsable de projet logiciel H/F
Safran - Ile de France - Éragny (95610)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil