Publication du système de gestion de versions Git 2.44

Après trois mois de développement, la version 2.44 du système de gestion de versions distribué Git a été publiée. Git est l'un des systèmes de gestion de versions les plus populaires, fiables et performants, offrant des outils flexibles pour le développement non linéaire basés sur le branchement et la fusion. Pour garantir l'intégrité de l'historique et la résilience aux modifications rétroactives, un hachage implicite de tout l'historique précédent est utilisé dans chaque commit, et il est également possible de certifier par des signatures numériques des tags et des commits individuels. Le code de Git est distribué sous la licence GPLv2+.

Comparé à la version précédente, cette nouvelle version comprend 503 modifications, préparées avec la participation de 85 développeurs, dont 34 ont participé au développement pour la première fois. Les principales nouveautés :

  • Une nouvelle commande « git replay » a été ajoutée, qui peut être utilisée comme alternative à « git rebase » et pour recréer l'historique sur le serveur un dépôt sans espace de travail (bare repository, ne contenant pas d'espace de travail), en traitant plusieurs branches en même temps, en effectuant des opérations de rebase sur des branches différentes de celles actuellement extraites, ou tout simplement pour accélérer les opérations de fusion.
  • Ajout du support pour le système d'intégration continue GitLab CI.
  • Les commandes « git add » et « git stash » ont été mises à jour pour prendre en charge les attributs de chemin « :(attr:…) », définis analogiquement à la commande « git show ». Par exemple, « git add ':(attr:~binary)' » peut être utilisé pour ajouter tous les fichiers texte (non binaires) à l'index. De plus, cette nouvelle version propose un attribut « builtin_objectmode » pour filtrer les chemins de fichiers en fonction des droits d'accès. Par exemple, « git add ':(attr:builtin_objectmode=100755)' » peut être utilisé pour ajouter tous les fichiers exécutables.
  • Ajout de la prise en charge de la réutilisation des objets répartis sur plusieurs fichiers pack, pour lesquels un index multi-pack est présent avec des données sur la disponibilité des objets (optimisation permettant de faire référence à l'utilisation de données déjà présentes dans des fichiers pack, au lieu de transmettre effectivement des données). Depuis la version 2.44, git peut désormais traiter la réutilisation d'objets sur plusieurs fichiers pack, sans avoir besoin de réemballer le référentiel en un seul fichier pack. Pour activer cette nouvelle fonctionnalité, il faut exécuter les commandes : git config —global pack.allowPackReuse multi git multi-pack-index write —bitmap

    Après quoi le nombre de fichiers pack à partir desquels les objets sont réutilisés peut être suivi dans la valeur « pack-reused … (from N) », affichée lors de l'exécution de « git push ».

  • La commande « git rebase —autosquash » peut désormais être appliquée aux opérations de rebase en mode non interactif, ce qui permet d'exécuter le rebase et d'appliquer rapidement les corrections fixup sans inspecter la liste des modifications et sans modifier la variable d'environnement GIT_SEQUENCE_EDITOR.
  • La commande « git merge-file » a été ajoutée avec l'option « —diff-algorithm » pour choisir un algorithme alternatif d'évaluation des différences entre les fichiers.
  • Dans la commande « git checkout -B [] », la mise à jour et l'extraction des branches utilisant un autre arbre de travail sont désormais interdites. Pour revenir au comportement précédent, l'option « —ignore-other-worktrees » a été ajoutée.
  • Il est désormais possible d'assigner à la configuration « git config advice.pushAlreadyExists » la valeur « true », supprimant ainsi l'instruction sur la désactivation de l'affichage des conseils (« Disable this message with… »), qui prend de la place à l'écran.
  • L'exécution de la commande « git for-each-ref » avec l'option « —no-sort » a été optimisée, ce qui entraîne désormais un affichage dans un ordre indéfini (auparavant, lorsque « —no-sort » était spécifié, un tri par ordre alphabétique était néanmoins appliqué). Après ces optimisations, l'utilisation de « —no-sort » accélère désormais « git for-each-ref » d'environ 20 % dans les référentiels comportant un grand nombre de références.
  • Le backend de gestion des identifiants wincred a ajouté la prise en charge de la mise à jour des tokens OAuth, de la même manière que cela a été réalisé dans les backends credential-cache et credential-libsecret.
  • La prise en charge du paramètre de configuration « fetch.all » a été ajoutée à « git fetch », qui sera traité de la même manière que l'ajout de l'option « —all » dans la ligne de commande.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster