Ouvrir le menu principal

MacGeneration

Recherche

Git 2.37 récupère bien plus rapidement le statut d’un projet sur macOS

Nicolas Furno

mardi 28 juin 2022 à 11:30 • 22

Logiciels

Les plus gros projets de développement vont devenir beaucoup plus faciles à gérer grâce à une mise à jour de Git, un outil de versionnement bien connu des développeurs, même s’ils ne sont pas les seuls à les utiliser1. Comme tous les outils similaires, son rôle est non seulement de suivre toutes les modifications apportées à un projet, mais aussi de les enregistrer. Tout ce que vous faites depuis la création du projet est stocké, ce qui peut vite représenter des centaines de méga-octets et milliers de fichiers, voire des dizaines de giga-octets et millions de fichiers pour les projets les plus gros et anciens.

Un bon exemple de projet de grosse taille et avec un long historique pourrait être WebKit, le moteur d’affichage de Safari, dont le dépôt Git proposé sur GitHub contient plus de 250 000 « commits » (des modifications qui touchent en général plusieurs fichiers) qui remontent jusqu’au 24 août 2001. Près de 21 ans d’histoire, sachant que le WebKit des débuts n’a sans doute plus grand-chose à voir avec l’actuel, et qu’un moteur d’affichage web nécessite énormément de fichiers. Pour vous donner une idée, le projet actuel nécessite de télécharger plus de 12 Go de données pour récupérer plus de 361 000 fichiers différents.

Gérer cet historique est une tâche plus complexe qu’il n’y paraît, même pour un ordinateur aussi puissant que mon Mac Studio avec sa puce Apple M1 Max. Quand j’ouvre le dossier qui contient le projet WebKit dans le terminal, il lui faut quelques secondes pour me rendre la main2. Cela correspond au temps nécessaire pour analyser chaque fichier et vérifier s’il a été modifié par rapport au serveur. La commande git status donne une information similaire et elle a aussi besoin de plusieurs secondes pour donner son résultat.

Jusque-là, Git avait du mal à gérer les très gros projets comme celui de WebKit, y compris depuis la ligne de commande fournie par le terminal. Il faut une vingtaine de secondes ici pour ouvrir le dossier et obtenir un statut du projet.

Les créateurs de Git ont sorti une mise à jour qui apporte une amélioration sur ce point précis. Avec la version 2.37, on peut activer un nouvel outil de surveillance des fichiers intégré à Git. Il n’est pas actif par défaut et doit être mis en route avec cette commande saisie dans chaque dépôt : git config core.fsmonitor true. Une fois que c’est fait, la différence est spectaculaire : sur le même Mac Studio et le même projet WebKit, l’entrée dans le dossier puis l’obtention du statut sont quasiment instantanées. Notez aussi que la charge CPU (pourcentage en haut) reste basse, alors que le processeur était fortement exploité auparavant.

Les mêmes opérations réalisées avec Git 2.37 sont nettement plus rapides.

Ce changement est disponible sur macOS et sur Windows. Notez que la version de Git fournie avec macOS est trop ancienne pour en bénéficier, vous devrez installer une copie à jour, ce qui peut être aisément effectué avec le gestionnaire de paquets Homebrew (brew install git). D’autres options sont proposées sur le site officiel.


  1. Nous l’utilisons au sein de la rédaction pour le suivi de version de nos livres, par exemple.  ↩︎

  2. Cette latence est liée à une fonction spécifique que j’ai activée dans mon terminal : via oh-my-zsh, je peux obtenir des informations sur le dépôt Git actif, notamment pour connaître la branche en cours et savoir s’il y a des modifications locales. Avec un terminal « standard », l’ouverture serait immédiate, car toute la partie Git serait ignorée.  ↩︎

illustration magazine 25 ans

MacGeneration a 25 ans !

Participez à la fête et découvrez l’histoire de votre site favori en précommandant notre magazine exclusif.

Je précommande le magazine

Sortie de veille : télé Apple et iPhone 17 ultra-fin, des rumeurs folles ou crédibles ?

08:00

• 0


Intrusion informatique, quand une entreprise joue le jeu de la communication ouverte

22/11/2024 à 20:45

• 12


Le SSD de certains MacBook Pro M4 Max atteint presque 11 Go/s

22/11/2024 à 20:30

• 10


Les meilleures promos du Black Friday : AirPods Pro 2, iPad 10, serrure connectée…

22/11/2024 à 18:30

• 9


Test du système mesh Wi-Fi 7 Netgear Orbi 970 : une poignée de mégabits, pour quelques centaines d’euros de plus

22/11/2024 à 17:00

• 8


Décodeur Orange : mise en veille automatique du boitier par le téléviseur

22/11/2024 à 16:30

• 14


macOS 15.2 : Safari dédouble ses fonctions d'import de données

22/11/2024 à 15:02

• 5


Buy Now : un documentaire sur la surconsommation avec le CEO d’iFixit et un ancien d’Apple

22/11/2024 à 12:15

• 68


Protégez votre Mac pour seulement 2,03 €/mois avec CyberGhost VPN : l'offre Black Friday à ne pas manquer ! 📍

22/11/2024 à 11:49


OpenAI envisagerait de lancer un navigateur web

22/11/2024 à 11:15

• 22


Black Friday : le Creative Cloud ainsi que les apps Affinity et DxO jusqu’à - 55 %

22/11/2024 à 10:10

• 13


Palworld est en précommande sur Mac, la sortie repoussée à 2025 🆕

22/11/2024 à 09:47

• 19


Black Friday : de bonnes remises sur les MacBook Pro M3

22/11/2024 à 09:47

• 4


Publicité : l'iPhone 16 Pro décolle à plat grâce à sa puce surpuissante 🆕

22/11/2024 à 09:33

• 14


Le Bitcoin flirte avec les 100 000 $

22/11/2024 à 09:00

• 110


Le vrai nouveau Siri, celui alimenté par une IA générative, ne sortirait pas avant… 2026

22/11/2024 à 08:30