Sorti récemment, Git 2.11 a plus de 650 commits relatifs à la manipulation des SHA-1, l'amélioration des performances et ainsi de suite.
Les SHA-1 abrégés sont des abréviations dérivées de la signature 160 bits (ou 40 caractères hexadécimaux) d'un commit. Les développeurs utilisent une abréviation de 4 caractères (par exemple) par commodité au lieu du hache original de 40 caractères. Cependant, cette facilité peut également conduire à une collision de haches.
Par exemple, dans les versions antérieures, la commande git show
afficherait un message indiquant que le nom abrégé est ambigu.
git show 454c
error: short SHA1 454c is ambiguous.
error: short SHA1 454c is ambiguous.
Maintenant, la même commande affichera :
git show 454c
error: short SHA1 454c is ambiguous
hint: The candidates are:
hint: 454cb6bd5 commit 2016-11-29 - Git 2.11
hint: 454ce7ef2 blob
L'ambiguïté dans les noms peut alors être levée manuellement en fournissant plus de caractères ou via la commande git config
.
Les noms abrégés plus longs sont également affichés par défaut. Par exemple, la commande suivante donne l'abréviation du nom sur neuf caractères au lieu de sept caractères comme dans les versions antérieures.
git log --oneline
454cb6bd5 Git 2.11
Git 2.11 améliore considérablement les performances des Chaînes Delta et des recherches d'Objets dans les packfiles. Il accélère le calcul des IDs de patchs, qui sont utilisés par la commande git rebase
et enfin, inclut un mécanisme de filtrage pour accélérer la conversion vers et à partir de la représentation du système de fichiers local.
Il existe de nombreuses autres améliorations classées comme divers dans le blog. Celles-ci comprennent :
- Une amélioration de l'algorithme de diff qui rend les résultats plus faciles à lire, et qui deviendra probablement le défaut à l'avenir.
- Amélioration de
git log
pour être en mesure d'exclure un parent donné. - Une aide aux certificats dans
contrib/
qui peut utiliser libsecret de GNOME pour stocker les mots de passe Git. - Le commande
git diff
affichera les modifications apportées aux sous-modules comme un patch entre les 2 états des sous-modules. - La sortie de
git status
rend le scripting plus aisé avec un nouveau format de sortie lisible par une machine. - Démarrage des travaux de conversion de certains scripts shell de Git en programmes C qui devraient améliorer les performances globales.
Git 2.11 a de nombreuses autres fonctionnalités qui peuvent être trouvées dans les Notes de Version.