Sortie du système de gestion de versions Git 2.45

Après deux mois de développement, la version 2.45 du système de gestion décentralisée des versions 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 de branches. 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 vérifier numériquement les signatures des développeurs pour certains tags et commits. Le code source de Git est distribué sous la licence GPLv2+.

Par rapport à la version précédente, cette nouvelle version comprend 540 changements, préparés par 96 contributeurs, dont 35 participaient au développement pour la première fois. Les principales nouveautés :

  • Ajout d'un support préliminaire pour le backend « reftable » afin de stocker efficacement les références de branches et de tags dans le dépôt. Ce nouveau backend utilise un stockage par blocs utilisé par le projet JGit, optimisé pour la gestion d'un très grand nombre de références (les formats traditionnels de stockage des références entraînent des frais généraux significatifs dans les dépôts avec un grand nombre de références, en raison du stockage d'un très grand nombre de fichiers dans un seul répertoire lorsqu'il s'agit de références dans le répertoire $GIT_DIR/refs ou de la nécessité de réécrire un gros fichier à chaque mise à jour lors du stockage de références dans le fichier $GIT_DIR/packed_refs). Ce nouveau backend s'active en spécifiant l'option « —ref-format=reftable » lors de l'initialisation du dépôt (« git init —ref-format=reftable /path/to/repo ») et permet d'accélérer la recherche, la lecture et l'écriture dans les dépôts avec un grand nombre de références.
  • Des outils ont été fournis pour assurer la portabilité entre les identifiants d'objets basés sur les hachages SHA-1 et SHA-256. Pour permettre le travail avec les hachages SHA-1 et SHA-256 dans un même dépôt lors d'une migration progressive vers les hachages SHA-256, un nouveau format d'objet « compatibility » a été proposé, permettant de référencer des objets non seulement par le hachage principal défini lors de l'initialisation du dépôt, mais aussi par un hachage de secours. Par exemple, lors de l'initialisation d'un dépôt, il est possible de choisir le format SHA-256 et de définir un hachage SHA-1 comme hachage de secours : git init —object-format=sha256 /path/to/repo cd /path/to/repo git config extensions.compatObjectFormat sha1
  • La commande «git rev-list» a été améliorée pour afficher les identifiants d'objets absents dans le dépôt local, même s'ils sont inaccessibles dans une branche ou un tag, ce qui peut être utilisé pour diagnostiquer la corruption du dépôt : git rev-list —missing=print —all | grep '^?' ?70678e7afeacdcba1242793c3d3d28916a2fd152
  • Une nouvelle commande «git reflog list» a été ajoutée pour afficher les reflogs connus et les références correspondantes des tags et branches.
  • Il est désormais possible de définir des préfixes alternatifs pour les sorties de «git diff», affichés avant le chemin du fichier et désignant l'état avant et après une version donnée du fichier (les préfixes «a/» et «b/» sont utilisés par défaut). De nouveaux paramètres diff.srcPrefix et diff.dstPrefix ont été ajoutés à la configuration pour spécifier vos propres préfixes.
  • Un paramètre core.commentString a été ajouté pour définir une chaîne de séparation qui sera utilisée à la place du caractère «#» pour ignorer les commentaires dans le message de commit. L'ancienne configuration core.commentChar a été adaptée pour prendre en charge les caractères multibytes comme séparateur de commentaire (auparavant, seuls les caractères ASCII étaient pris en charge).
  • Une option «—comment» a été ajoutée à la commande «git config», permettant de conserver des commentaires dans le fichier .gitconfig pour expliquer les paramètres. git config —comment 'to show the merge base' merge.conflictStyle diff3 tail -n 2 .git/config [merge] conflictStyle = diff3 # to show the merge base
  • Une option «—empty» a été ajoutée à la commande «git cherry-pick» pour supprimer automatiquement les commits redondants, de manière similaire à l'option «—empty» dans git-rebase et git-am.
  • Dans la commande «git checkout -p», il est désormais autorisé d'utiliser le caractère «@» comme synonyme du nom «HEAD».

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