Accueil Astuces et Informations Git 2.42 arrive avec des améliorations de performances, de nouvelles commandes et...

Git 2.42 arrive avec des améliorations de performances, de nouvelles commandes et bien plus encore

44
0
git 2.42

Bannière Git 2.42

La sortie de la nouvelle version de Git 2.42 a été récemment annoncée , une version dans laquelle diverses améliorations ont été implémentées telles que de nouveaux bitmaps, de nouveaux mécanismes, des corrections de bugs et bien plus encore.

Par rapport à la version précédente, dans la nouvelle version, préparée avec la participation de 78 développeurs , 453 modifications ont été acceptées, dont 17 étaient impliquées dans le développement pour la première fois.

Principales Git 2.42 arrive avec des améliorations de performances, de nouvelles commandes et bien plus encore

Dans cette nouvelle version de Git 2.42, nous pouvons constater qu’un nouvel algorithme est proposé pour ignorer les bitmaps , qui reflète les données sur les ensembles d’objets disponibles pour chaque commit. Le nouvel algorithme offre une amélioration significative des performances lorsque le bitmap ne couvre pas entièrement l’une des branches comparées. Dans certaines situations, l’application du nouvel algorithme peut entraîner une accélération de 2 à 15 fois.

Une autre nouveauté de Git 2.42 sont les améliorations apportées à la commande ” git for-each-ref “, notamment que désormais au lieu de vérifier les références exclues une par une, la nouvelle méthode détermine le début et la fin de chaque plage exclue et les ignore lors de l’analyse du fichier de références compressé. Le modèle d’exclusion est spécifié avec la nouvelle option ” –exclude “. De plus, ajout de l’ option –include , qui vous permet de renvoyer des pièces individuelles de la plage exclue.

De plus, la commandefor-each-refa reçu des améliorations , car désormais avec l’option ” –format “, il est possible d’afficher des informations liées aux signatures GPG, par exemple, vous pouvez afficher la clé séparément, imprimer le clé et le nom du développeur qui a généré la signature numérique.

Il convient également de noter qu’un nouveau mécanisme a été ajouté pour sauvegarder les objets inaccessibles (ceux auxquels on ne peut accéder depuis aucune branche ou balise), puisque dans cette nouvelle version l’option gc.recentObjectsHook ” a été ajoutée , qui permet de configurer l’appel à un programme externe avant le début du garbage collection. Le programme spécifié dans le paramètre gc.recentObjectsHook renvoie une liste de descripteurs d’objets que le garbage collector protégera contre la suppression, quelle que soit la durée de leur séjour dans le référentiel.

En revanche, l’utilisation étendue du mécanisme « sparse index » est mise en avant , couvrant seulement une partie du référentiel. Les index partiels peuvent améliorer les performances et économiser de l’espace dans les référentiels qui effectuent des opérations d’extraction fragmentée ou fonctionnent sur une copie partielle du référentiel. La nouvelle version a déplacé la commande diff-tree pour utiliser des index partiels.

Dans la commande ” git rev-list “, lors de l’utilisation de l’option ” –stdin “, pour faciliter l’appel à partir de scripts, des modificateurs étendus tels que ” –branches”, ” –tags ” et ” –remotes ” sont autorisés à être spécifié via le flux de données d’entrée, pas seulement les modificateurs qui font référence aux validations par identifiant d’objet.

La suppression retardée du message $GIT_DIR/TAG_EDITMSG , qui est effectuée uniquement après une écriture réussie de la balise, est implémentée, résolvant le problème de la suppression d’une note avant l’affichage d’un message d’erreur.

Git 2.42 est également livré avec quelques nouvelles options dans la commande ” git pack-refs ” qui est responsable de la mise à jour du fichier ” packed-refs “ avec toutes les nouvelles références libres qui ne sont pas stockées. Dans certains scénarios (comme une référence fréquemment mise à jour ou supprimée), il peut être utile d’exclure ces références du fichier packed-refs en premier lieu. git pack-refs comprend maintenant comment modifier l’ensemble des références. qu’il conditionne à l’aide de ses nouveaux indicateurs « –include » et « –exclude ».

Parmi les autres changements qui ressortent de cette nouvelle version :

  • Ajout de l’option ” –orphan ” à la commande ” git worktree add ” pour créer un arbre de travail basé sur une branche orpheline.
  • Le mode ” -Z ” a été ajouté à la commande ” git cat-file “, qui, contrairement au mode ” -z “ , applique une séparation basée sur des caractères codés nuls (au lieu de nouvelles lignes) non seulement pour l’entrée mais aussi pour le sortir.
  • Ajout de l’option ‘ –separator ‘ à la commande ‘ git notes append ‘ pour sélectionner le séparateur de paragraphe.
  • La commande ” git diff –no-index ” implémente la possibilité de lire à partir de canaux nommés (” git diff <(process) <(substitute)”).

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