Accueil Astuces et Informations Git 2.41 est déjà sorti et voici ses nouveautés

Git 2.41 est déjà sorti et voici ses nouveautés

6
0
Git 2.41

Git 2.41 implémente des améliorations dans la gestion des référentiels

Après trois mois de développement, le nouvelle version système de contrôle de source distribué Git 2.41. Par rapport à la version précédente, 542 modifications ont été acceptées dans la nouvelle version, préparée avec la participation de 95 développeurs, dont 29 ont participé au développement pour la première fois.

Pour ceux qui ne connaissent pas Git, sachez que est l’un des systèmes de contrôle de version les plus populairesun logiciel fiable et performant qui fournit des outils de développement non linéaires flexibles basés sur des fourches et des fusions de branches.

Nouvelles fonctionnalités majeures dans Git 2.41

Dans cette nouvelle version, il ressort que la gestion des objets “inaccessibles” a été améliorée pour ceux qui ne sont pas référencés dans le référentiel (pas de référence aux branches ou aux balises). Le ramasse-miettes supprime les objets, mais ils restent dans le référentiel pendant un certain temps avant d’être supprimés pour éviter les conditions de concurrence.

Pour suivre la période des objets, des étiquettes doivent y être attachées avec l’heure de changement d’objets similaires, ce qui ne permet pas de les stocker dans un fichier package, dans lequel tous les objets ont une heure de changement commune.

Auparavant, chaque objet était stocké dans un fichier séparé, ce qui provoquait des problèmes s’il y avait un grand nombre de nouveaux objets qui n’étaient pas encore sujets à suppression. Dans la nouvelle version, les Cruft Packs sont utilisés par défaut pour emballer les objets «inaccessible“, qui permet de stocker tous les objets dans un fichier de package et de refléter les données sur l’heure de modification de chaque objet dans une table séparée stockée dans un fichier avec l’extension “.mtimes” et liée par un fichier d’index avec l’extension “.idx “.

Un autre des changements qui se démarque dans cette nouvelle version est que la maintenance revindex sur disque est activée pour les fichiers de package. Lorsqu’il est testé sur les référentiels Torvalds / Linux, l’utilisation d’un index inversé est mentionnée comme étant autorisé à accélérer les opérations git push qui consomment beaucoup de ressources en 1,49 fois, et des opérations simples, comme calculer la taille d’un seul objet en utilisant “git cat-file –batch=’%(objectsize:disk) ‘” 77 fois.

L’index inversé inclus dans la nouvelle version vise à rationaliser le processus de détermination de l’identification de l’objet à partir d’informations sur l’emplacement de l’objet dans le fichier de package. L’opération de création d’un index se résume à la création d’un tableau de paires “position d’objet” et à leur tri par position, ce qui peut prendre du temps pour les fichiers de package volumineux.

Par exemple, l’opération d’affichage du contenu des objets, qui utilise un index direct, était 62 fois plus rapide que l’opération d’affichage de la taille des objets, pour laquelle les données de contrainte d’objet n’étaient pas indexées. Après avoir utilisé l’index inversé, ces opérations ont commencé à prendre à peu près le même temps. Les index inversés vous permettent également d’accélérer l’opération de répartition des objets en exécutant des commandes de récupération et de répartition en transférant directement les données préparées à partir du disque.

Il est également souligné que dans Git 2.41, ajout de la prise en charge de la transmission des en-têtes WWW-Authenticate entre le gestionnaire d’informations d’identification et le service d’authentification au protocole « assistant d’informations d’identification » qui est utilisé pour transmettre les informations d’identification lors de l’accès aux référentiels restreints. compatibilité avec l’en-tête WWW-Authenticate permet de transmettre les paramètres de portée OAuth à un accès utilisateur distinct de manière plus granulaire aux référentiels et délimiter les scopes disponibles pour les requêtes.

Des autres changements notables de la nouvelle version :

  • Ajout de l’option de mise en forme “%(devant-derrière :)” commander pour chaque référence, qui vous permet d’obtenir des informations immédiates sur le nombre de commits présents ou manquants sur une certaine branche, par rapport à une autre branche.
  • Option ajoutée “-porcelaine” commander “git chercher”, qui génère une sortie au format « »moins lisible, mais plus pratique à analyser dans les scripts.
  • Paramètres ajoutés “fetch.hideRefs” pour accélérer les opérationsgit récupérer» masquant une partie des références dans le référentiel local lors de l’étape de vérification que le serveur a envoyé l’ensemble complet des objets, ce qui permet de gagner du temps en limitant la vérification aux seuls serveurs desquels les données sont directement récupérées.
    La commande “git fsck» implémente la possibilité de vérifier la corruption, la correspondance des sommes de contrôle et la validation des valeurs sur les bitmaps d’accessibilité et les index inversés.
  • La commande “git clone –local” affiche maintenant une erreur lors de la tentative de copie à partir d’un référentiel contenant des liens symboliques dans $GIT_DIR.

Enfin, si vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant.