Na drie maanden ontwikkeling is de uitgifte van het gedistribueerde versiebeheersysteem Git 2.40 gepubliceerd. Git is een van de meest populaire, betrouwbare en krachtige versiebeheersystemen en biedt flexibele middelen voor niet-lineaire ontwikkeling, gebaseerd op takken en samenvoegen. Om de integriteit van de geschiedenis en de weerstand tegen retroactieve wijzigingen te waarborgen, wordt impliciete hashing van de volledige vorige geschiedenis in elke commit gebruikt, en het is ook mogelijk om digitale handtekeningen van ontwikkelaars te verifiëren voor individuele tags en commits.
In vergelijking met de vorige release werden er 472 veranderingen in deze nieuwe versie opgenomen, voorbereid met de medewerking van 88 ontwikkelaars, van wie 30 voor het eerst deelnamen aan de ontwikkeling. Belangrijkste vernieuwingen:
- De script git-jump ondersteunt nu de editor Emacs, naast de eerder ondersteunde editor Vim. Git-jump wordt gebruikt om informatie over posities in een bestand naar de teksteditor te verzenden voor snelle navigatie en het overschakelen naar het bewerken van code op een specifieke plek. Bijvoorbeeld, git-jump kan worden gebruikt om in de editor te schakelen tussen regels die zijn verkregen na het oplossen van samenvoegconflicten, het evalueren van verschillen, en het uitvoeren van zoekopdrachten (je kunt 'git jump grep foo' uitvoeren en dan snel schakelen tussen de posities waar de maskers 'foo' voorkomen).
- In 'git cat-file' is ondersteuning toegevoegd voor het combineren van de opties '-s' en '--batch-check' met '--use-mailmap' voor een juiste bepaling van de objectgrootte, rekening houdend met de identifiervervanging die is uitgevoerd op basis van de e-mailbindingen die in het mailmap-bestand zijn gedefinieerd (voorheen had de optie '--use-mailmap' alleen invloed op de output van de inhoud, maar hield geen rekening met het feit dat oude en vervangende naam/e-mailparen verschillende groottes kunnen hebben).
- De 'git check-attr'-opdracht heeft een optie '--source' gekregen voor het selecteren van de boom met het benodigde '.gitattributes'-bestand, dat zal worden gebruikt om de actuele attributen te bepalen in het geval van meerdere '.gitattributes'-bestanden in de repository.
- De implementatie van de 'git bisect'-opdracht is herschreven in de programmeertaal C en ingebouwd in het hoofd uitvoerbare bestand van git (voorheen was de opdracht uitgevoerd in de vorm van een Shell-script).
- De oude implementatie van de opdracht «git add —interactive», geschreven in Shell, is verwijderd (in git 2.26 werd een ingebouwde versie in C voorgesteld, maar de oude implementatie in Shell bleef beschikbaar en werd beheerd via de instelling add.interactive.useBuiltin).
- De opdracht «git merge-tree» is voorzien van de optie ‘—merge-base’.
- De opdracht «git range-diff» is voorzien van de optie «—abbrev=».
- Er is een mogelijkheid toegevoegd om de lijsteditor voor de interactieve modus van de rebase-opdracht opnieuw in te stellen door de variabele GIT_SEQUENCE_EDITOR in te stellen via de opdracht «git var», analogisch aan «git var GIT_EDITOR».
- In het accountsysteem is ondersteuning voor wachtwoorden met een beperkte geldigheidsduur toegevoegd.
- In de autocompletiescripts voor Bash is een modus geïmplementeerd die geen rekening houdt met de hoofdlettergevoeligheid.
Bron: opennet.ru
