Utgivelse av Git 2.36 kildekontrollsystem

Etter tre måneders utvikling har det distribuerte kildekontrollsystemet Git 2.36 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 ble 717 endringer tatt i bruk i den nye versjonen, utarbeidet med deltagelse av 96 utviklere, hvorav 26 deltok i utviklingen for første gang. Hovedinnovasjoner:

  • Kommandoene "git log" og "git show" har nå et "—remerge-diff"-alternativ som lar deg vise forskjellene mellom det totale resultatet av sammenslåingen og de faktiske dataene som reflekteres i commit etter å ha behandlet "merge"-kommandoen , som lar deg tydelig evaluere endringene som er gjort som et resultat av å løse fusjonskonflikter. Den normale "git show"-kommandoen rykker inn de forskjellige konfliktløsningene, noe som gjør endringer vanskelig å forstå. For eksempel, i skjermbildet under linjen "+/-" uten innrykk viser den siste løsningen av konflikten knyttet til omdøping av sha1 til oid i kommentaren i den første grenen, og "+/-" med innrykk viser initialen løsning av konflikten forårsaket av utseendet til et ekstra argument i den andre grenen i funksjonen dwim_ref().
    Utgivelse av Git 2.36 kildekontrollsystem

    Når du bruker alternativet "--remerge-diff", skilles ikke forskjellene mellom konfliktløsninger for hver overordnede gren, men de generelle forskjellene mellom filen som har flettekonflikter og filen som har konfliktene løst vises.

    Utgivelse av Git 2.36 kildekontrollsystem

  • Økt fleksibilitet i å konfigurere atferden for å tømme diskbuffer via et kall til fsync()-funksjonen. Den tidligere tilgjengelige core.fsyncObjectFiles-parameteren har blitt delt inn i to konfigurasjonsvariabler core.fsync og core.fsyncMethod, og gir muligheten til å bruke fsync ikke bare på objektfiler (.git/objects), men også på andre git-strukturer som lenker ( .git /refs), reflog og pack-filer.

    Ved å bruke core.fsync-variabelen kan du spesifisere en liste over interne Git-strukturer som fsync i tillegg vil bli kalt etter en skriveoperasjon. core.fsyncMethod-variabelen lar deg velge en metode for å tømme hurtigbufferen, for eksempel kan du velge fsync for å bruke systemkallet med samme navn, eller spesifisere bare utskrivning for å bruke tilbakeskrivning av sidecache.

  • For å beskytte mot sårbarheter som manipulerer andre brukeres substitusjon av .git-kataloger til delte seksjoner, har verifiseringen av depoteier blitt styrket. Å utføre alle git-kommandoer er nå bare tillatt i deres egne ".git"-kataloger. Hvis katalogen med depotet tilhører en annen bruker, vil en feil vises som standard. Denne virkemåten kan deaktiveres ved å bruke safe.directory-innstillingen.
  • "git cat-file"-kommandoen, beregnet for å sende ut kildeinnholdet til Git-objekter, har blitt supplert med "--batch-command"-alternativet, som utfyller de tidligere tilgjengelige "--batch" og "--batch-check ”-kommandoer med evnen til adaptivt å velge utdatatypen ved å bruke " innhold <objekt>" for å vise innhold eller "info <objekt>" for å vise informasjon om objektet. I tillegg støttes "flush"-kommandoen for å tømme utgangsbufferen.
  • Til «git ls-tree»-kommandoen, beregnet for å generere en liste over innholdet i et objekttre, er alternativet «—oid-only» («—object-only») lagt til, på samme måte som «—name-only» ”, viser kun objektidentifikatorer for å forenkle anropet fra skript. Også implementert er alternativet "--format", som lar deg definere ditt eget utdataformat ved å kombinere informasjon om modus, type, navn og størrelse.
  • Kommandoen "git bisect run" implementerer deteksjonen av å ikke sette det kjørbare filflagget for et skript og i dette tilfellet vise feil med kodene 126 eller 127 (tidligere, hvis skriptet ikke kunne kjøres, ble alle revisjoner merket med problemer) .
  • La til et --refetch-alternativ til "git fetch"-kommandoen for å hente alle objekter uten å informere den andre parten om innholdet som allerede er på det lokale systemet. Denne oppførselen kan være nyttig for å gjenopprette feil når integriteten til lokale data er usikker.
  • "git update-index", "git checkout-index", "git read-tree" og "git clean"-kommandoene støtter nå delvise indekser (sparse index) for å forbedre ytelsen og spare plass i depoter der delvise operasjoner utføres. kloning (sparsom kasse).
  • Oppførselen til kommandoen "git clone —filter=... —recurse-submodules" har blitt endret, noe som nå fører til delvis kloning av undermoduler (tidligere, når slike kommandoer ble utført, ble filteret bare brukt på hovedinnholdet, og undermoduler ble klonet helt uten å ta hensyn til filteret).
  • "git bundle"-kommandoen har lagt til støtte for å spesifisere filtre for selektiv plassering av innhold, som ligner på delvis kloningsoperasjoner.
  • Lagt til "--recurse-submodules"-alternativet til "git branch"-kommandoen for å krysse undermoduler rekursivt.
  • Userdiff tilbyr en ny behandler for Kotlin-språket.

Kilde: opennet.ru

Legg til en kommentar