Git 2.36 est déjà sorti et voici ses actualités

Après trois mois de développement la nouvelle version du système est sortie de contrôle de code source distribué »Git 2.36» l'un des systèmes de contrôle de version les plus populaires, les plus fiables et les plus performants, fournissant des outils de développement non linéaires flexibles basés sur des fourches et des fusions de fourches.

Pour garantir l'intégrité de l'historique et la résistance aux modifications "en arrière", le hachage implicite de tout l'historique précédent est utilisé à chaque validation. Il est également possible de vérifier les signatures numériques des développeurs d'étiquettes et de confirmations individuelles.

Points forts de Git 2.36

Par rapport à la version précédente, 717 modifications ont été acceptées dans la nouvelle version, préparée avec la participation de 96 développeurs, dont 26 ont participé au développement pour la première fois. Principales innovations :

Le choix "–remerge-diff" ajouté aux commandes "git log" et "git show" pour montrer les différences entre le résultat global de la fusion et les données réelles reflétées dans le commit après le traitement de la commande "merge", ce qui vous permet d'évaluer visuellement les modifications apportées à la suite de la résolution des conflits de fusion. La commande habituelle « git show » sépare les différentes résolutions de conflits avec une indentation, ce qui rend les modifications difficiles à comprendre.

Lors de l'utilisation de l'option "-remerge-diff", les différences entre les résolutions de conflits ne sont pas séparées pour chaque branche parente, mais les différences globales entre un fichier présentant des conflits de fusion et un fichier présentant des conflits résolus sont affichées.

Un autre changement notable est la flexibilité améliorée dans la personnalisation du comportement de vider les caches disque via l'appel de fonction fsync(). Paramètre core.fsyncObjectFiles précédemment disponible a été divisé en deux variables de configuration core.fsync et core.fsyncMethod, qui offre la possibilité d'appliquer fsync non seulement aux fichiers objets (.git/objects), mais également à d'autres structures git telles que les refs (.git/refs), reflog et les fichiers de package.

par variables core.fsync, vous pouvez spécifier une liste de structures Git internes, après l'opération d'écriture, pour laquelle fsync sera également appelé. La variable core.fsyncMethod vous permet de sélectionner une méthode pour vider le cache, par exemple, vous pouvez sélectionner fsync pour utiliser l'appel système du même nom, ou spécifier en écriture seule pour utiliser l'écriture différée en attente (écriture différée du cache de page).

Pour se protéger des vulnérabilités qui gèrent la substitution des répertoires .git par d'autres utilisateurs sur des partitions partagées, la vérification du propriétaire du référentiel a été renforcée. Désormais, seules les commandes git exécutées dans leurs propres répertoires ".git" sont autorisées. Si le répertoire du référentiel appartient à un autre utilisateur, une erreur sera générée par défaut. Ce comportement peut être désactivé à l'aide du paramètre de répertoire sécurisé.

Il est également souligné que ajout de l'option "–batch-command" à la commande "git cat-file", qui est destiné à générer le contenu original des objets Git, en complément des commandes "-batch" et "-batch-check" précédemment disponible avec la possibilité de sélectionner de manière adaptative le type de sortie via "contenu » pour afficher le contenu ou « info » pour afficher des informations sur l'objet. En outre, une commande "flush" est prise en charge pour vider le tampon de sortie.

D'autre part, il est souligné que ajout de l'option "–oid-only" ("–object-only") à la commande "git ls-tree", qui a pour but de lister le contenu d'une arborescence d'objets qui, par analogie avec "–name -only", n'affiche que les identifiants des objets pour simplifier les appels depuis les scripts. L'option "-format" est également implémentée, ce qui vous permet de définir votre propre format de sortie en combinant les informations de mode, de type, de nom et de taille.

Des autres changements qui se démarquent de cette nouvelle version:

  • Dans la commande "git bisect run", la définition de ne pas définir le signe d'un fichier exécutable pour le script et de générer des erreurs avec les codes 126 ou 127 dans ce cas est implémentée (auparavant, si le script ne pouvait pas être exécuté, toutes les révisions étaient marqué comme ayant des problèmes).
  • Ajout de l'option "–refetch" à la commande "git fetch" pour récupérer tous les objets sans informer l'autre côté du contenu qui est déjà sur le système local. Ce comportement peut être utile pour restaurer l'état après des pannes lorsqu'il existe une incertitude sur l'intégrité des données locales.
  • Les commandes "git update-index", "git checkout-index", "git read-tree" et "git clean" prennent désormais en charge l'indexation partielle (sparse index) pour améliorer les performances et économiser de l'espace sur les référentiels qui effectuent des opérations partielles. (mauvais paiement).
  • Modification du comportement de la commande « git clone –filter=… –recurse-submodules », qui conduit désormais au clonage partiel des sous-modules (auparavant, lors de l'exécution de telles commandes, le filtre n'était appliqué qu'au contenu principal et les sous-modules étaient complètement clonés sans prise en compte compte le filtre).
  • Ajout de la prise en charge de la spécification de filtres pour le placement sélectif du contenu dans la commande "git bundle", similaire aux opérations de clonage partiel.
  • Ajout de l'option "–recurse-submodules" à la commande "git branch" pour parcourir les sous-modules de manière récursive.
    Userdiff a proposé un nouveau pilote pour le langage Kotlin.

Enfin si vous souhaitez en savoir plus à propos de cette nouvelle version de Git 2.36, vous pouvez consulter les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.