Publication du système de gestion de versions Git 2.46

Après trois mois de développement, la version du système de gestion de versions distribué Git 2.46 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 concept de branches et de merges. Pour assurer l'intégrité de l'historique et la résilience face aux modifications rétroactives, un hachage implicite de l'ensemble de l'historique précédent est utilisé dans chaque commit, et il est également possible de certifier numériquement les tags et commits des développeurs. Le code de Git est distribué sous la licence GPLv2+.

Par rapport à la version précédente, cette nouvelle version intègre 746 changements, préparés par la contribution de 96 développeurs, dont 31 participent pour la première fois au développement. Principales nouveautés :

  • Un support expérimental pour un nouveau type de bitmap a été ajouté - le «pseudo-merge reachability bitmap», où, à la différence de la structure «reachability bitmap», les données concernant les ensembles d'objets liés aux commits sont stockées non pas de manière liée à chaque commit individuel, mais en lien avec plusieurs commits en même temps. Cette organisation permet d'utiliser un seul bitmap pour déterminer les objets pour des commits dans différentes branches, ce qui, dans les grands dépôts, permet d'éviter la création d'un grand nombre de bitmaps individuels et d'accélérer considérablement le parcours des objets pour déterminer les objets à envoyer au client lors d'opérations telles que «git fetch», «git rev-list» et «git clone». Pour activer ce nouveau type de bitmap et définir la logique de leur sélection et utilisation, une série de paramètres «bitmapPseudoMerge» a été proposée : git config bitmapPseudoMerge.all.pattern ‘refs/(heads|tags)/’ git config bitmapPseudoMerge.all.threshold now git config bitmapPseudoMerge.all.stableThreshold never git repack -adb
  • Une nouvelle interface de ligne de commande pour la commande « git config » a été mise en œuvre, où un ensemble de sous-commandes distinctes a remplacé les options disparates pour afficher, renommer et supprimer les paramètres et sections, telles que « --get », « --get-all », « --unset » et « --remove-section ». Par exemple, pour afficher tous les paramètres du référentiel, la commande « git config list » peut maintenant être utilisée, et pour voir le contenu d'un paramètre particulier, la commande « git config get » est disponible. Pour un filtrage supplémentaire des résultats à l'aide de l'option « --regexp », un filtre basé sur une expression régulière peut être spécifié.
  • Dans le protocole « credential helper », utilisé pour transmettre des informations d’identification lors de l’accès à des référentiels restreints, le support de nouveaux champs « authtype » et « credential » a été ajouté, permettant de créer des gestionnaires pour des systèmes d'authentification HTTP qui ne se limitent pas à la vérification du nom d'utilisateur et du mot de passe, par exemple lors de l'utilisation du Bearer Token dans OAuth 2.0. Auparavant, pour travailler avec de tels systèmes d'authentification, il fallait spécifier les informations sensibles en clair dans le paramètre http.extraHeader. De plus, le protocole a été enrichi avec la possibilité de conserver l'état de chaque gestionnaire d'informations d'identification pour soutenir les méthodes d'authentification à plusieurs étapes utilisées dans des protocoles comme NTLM et Kerberos.
  • Le développement du backend expérimental « reftable » pour un stockage efficace des références aux branches et étiquettes dans le référentiel a été poursuivi. Ce backend utilise un stockage par blocs appliqué par le projet JGit et est optimisé pour stocker un très grand nombre de références (les formats de stockage traditionnels entraînent des coûts non négligeables dans les référentiels contenant un grand nombre de références, en raison de la création d'un très grand nombre de fichiers dans un même répertoire lorsque les références sont stockées dans le répertoire $GIT_DIR/refs ou de la nécessité de réécrire un gros fichier à chaque mise à jour lorsque les références sont stockées dans le fichier $GIT_DIR/packed_refs). Dans cette nouvelle version, la commande « git refs migrate --ref-format=reftable » a été ajoutée pour migrer les référentiels existants vers le backend « reftable » (auparavant, ce backend n'était activé que lors de l'initialisation du référentiel).
  • L'équipe de git a ajouté l'option « —no-advice », qui désactive tous les messages de recommandations et d'astuces, ce qui peut être utile pour éviter d'encombrer le log avec des informations superflues lors d'un appel automatisé à git.
  • Le processus de conversion de certaines vérifications du jeu de tests vers l'utilisation de tests unitaires a commencé, ce qui facilitera les tests des composants de bas niveau et améliorera l'efficacité du processus de test sur la plateforme Windows, où des frais généraux importants surviennent lors de l'exécution d'un grand nombre de processus pendant l'exécution des tests, qui sont réalisés sous forme de scripts shell.
  • Le code pour l'analyse des paramètres de couleur a été mis à jour pour permettre l'utilisation de la représentation « #RGB » en plus de « #RRGGBB ».

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