Etter tre måneders utvikling har det distribuerte kildekontrollsystemet Git 2.40 blitt utgitt. Git er et av de mest populære, pålitelige og høyytende versjonskontrollsystemene, og gir fleksible ikke-lineære utviklingsverktøy basert på forgrening og sammenslåing. For å sikre integriteten til historien og motstanden mot tilbakevirkende endringer, brukes implisitt hashing av hele den tidligere historien i hver forpliktelse; det er også mulig å sertifisere individuelle tagger og forpliktelser med digitale signaturer fra utviklerne.
Sammenlignet med forrige utgivelse inkluderte den nye versjonen 472 endringer, utarbeidet med deltagelse av 88 utviklere, hvorav 30 deltok i utviklingen for første gang. Hovedinnovasjoner:
- Git-jump-skriptet har lagt til støtte for Emacs-editoren, i tillegg til den tidligere støttede Vim-editoren. Git-jump brukes til å sende informasjon om posisjoner i en fil til en tekstredigerer for rask navigering og hoppe til redigeringskode på et bestemt sted. For eksempel kan git-jump brukes til å hoppe i editoren mellom linjer som er et resultat av å analysere flettekonflikter, evaluere forskjeller og utføre søk (du kan gjøre "git jump grep foo" og deretter raskt hoppe mellom posisjoner der jokertegnet "foo" oppstår).
- "git cat-filen" gir støtte for å bruke alternativene "-s" og "--batch-check" sammen med "--use-mailmap" for å bestemme størrelsen på objektet korrekt, med tanke på utskifting av identifikator basert på e-postbindinger spesifisert i filen mailmap (tidligere påvirket "--use-mailmap"-alternativet bare utdataene til innholdet, men tok ikke hensyn til at de gamle og erstattede navn/e-postparene kan ha forskjellige størrelser).
- Et "--source"-alternativ er lagt til i "git check-attr"-kommandoen for å velge et tre med den nødvendige ".gitattributes"-filen, som vil bli brukt til å bestemme de faktiske attributtene hvis det er flere ".gitattributes"-filer i depotet.
- Implementeringen av "git bisect"-kommandoen skrives om i C og bygges inn i den kjørbare hovedfilen for git (tidligere ble kommandoen implementert i form av et Shell-skript).
- Den gamle Shell-implementeringen av "git add —interactive"-kommandoen har blitt fjernet (i git 2.26 ble en innebygd C-versjon tilbudt, men den gamle Shell-implementeringen forble tilgjengelig og ble regulert av add.interactive.useBuiltin-innstillingen).
- Lagt til '--merge-base'-alternativet til 'git merge-tree'-kommandoen.
- Lagt til "--abbrev="-alternativet til "git range-diff"-kommandoen "
- Lagt til muligheten til å overstyre listeeditoren for den interaktive modusen til rebase-kommandoen ved å sette GIT_SEQUENCE_EDITOR-variabelen gjennom "git var"-kommandoen, lik "git var GIT_EDITOR".
- Støtte for passord med begrenset gyldighetsperiode er lagt til kontoundersystemet.
- Inndatafullføringsskript for Bash har nå en modus som ikke skiller mellom store og små bokstaver.
Kilde: opennet.ru