Après trois mois de développement, la version 2.40 du système de gestion de code source 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 des branches. Pour garantir l'intégrité de l'historique et la résilience aux modifications rétroactives, un hachage implicite de l'ensemble de l'historique précédent est utilisé dans chaque commit. Il est également possible de valider avec des signatures numériques les tags et commits individuels des développeurs.
Comparée à la version précédente, la nouvelle version intègre 472 modifications, préparées avec la participation de 88 développeurs, dont 30 ont contribué pour la première fois. Les principales nouveautés :
- Le script git-jump a ajouté le support de l'éditeur Emacs, en plus de l'éditeur Vim précédemment pris en charge. Git-jump est utilisé pour transmettre à l'éditeur de texte des informations sur les positions dans le fichier pour une navigation rapide et un accès à l'édition du code à un endroit donné. Par exemple, git-jump peut être utilisé pour basculer entre les lignes dans l'éditeur résultant de la résolution de conflits de fusion, de l'évaluation des différences et de l'exécution de recherches (il est possible d'exécuter « git jump grep foo » puis de passer rapidement entre les positions où se trouve le motif « foo »).
- Dans « git cat-file », le support de l'application des options « -s » et « —batch-check » avec « —use-mailmap » a été ajouté pour déterminer correctement la taille de l'objet en tenant compte du remplacement d'identifiant effectué sur la base des liaisons email définies dans le fichier mailmap (auparavant, l'option « —use-mailmap » n'affectait que la sortie du contenu, sans tenir compte du fait que les anciennes et remplacées paires nom/email peuvent avoir une taille différente).
- Une option « —source » a été ajoutée à la commande « git check-attr » pour sélectionner l'arbre contenant le fichier « .gitattributes » nécessaire, qui sera utilisé pour déterminer les attributs actuels en présence de plusieurs fichiers « .gitattributes » dans le dépôt.
- L'implémentation de la commande « git bisect » a été réécrite en C et intégrée dans le fichier exécutable principal de git (précédemment, la commande était mise en œuvre sous forme de script Shell).
- L'ancienne implémentation de la commande « git add —interactive », écrite en Shell, a été supprimée (une version intégrée en C a été proposée dans git 2.26, mais l'ancienne implémentation en Shell restait disponible et était contrôlée par le paramètre add.interactive.useBuiltin).
- Une option ‘—merge-base’ a été ajoutée à la commande « git merge-tree ».
- Une option «—abbrev=» a été ajoutée à la commande « git range-diff ».
- Il est désormais possible de redéfinir l'éditeur de listes pour le mode interactif de la commande rebase en définissant la variable GIT_SEQUENCE_EDITOR via la commande « git var », de la même manière que pour « git var GIT_EDITOR ».
- Le sous-système de gestion des comptes a ajouté la prise en charge des mots de passe à durée limitée.
- Les scripts d'auto-complétion d'entrée pour Bash ont introduit un mode de fonctionnement sans tenir compte de la casse.
Source : opennet.ru
