Git 2.36 kildekontroludgivelse

Efter tre måneders udvikling er det distribuerede kildekontrolsystem Git 2.36 blevet frigivet. Git er et af de mest populære, pålidelige og højtydende versionskontrolsystemer, der giver fleksible ikke-lineære udviklingsværktøjer baseret på forgrening og sammensmeltning. For at sikre historiens integritet og modstand mod tilbagevirkende ændringer, anvendes implicit hashing af hele den tidligere historie i hver commit; det er også muligt at certificere individuelle tags og commits med digitale signaturer fra udviklerne.

Sammenlignet med den tidligere udgivelse blev 717 ændringer overtaget i den nye version, udarbejdet med deltagelse af 96 udviklere, hvoraf 26 deltog i udviklingen for første gang. Vigtigste innovationer:

  • Kommandoerne "git log" og "git show" har nu en "—remerge-diff" mulighed, der giver dig mulighed for at vise forskellene mellem det overordnede resultat af sammenlægningen og de faktiske data, der afspejles i commit efter behandling af "merge" kommandoen , som giver dig mulighed for klart at evaluere de ændringer, der er foretaget som følge af løsning af fusionskonflikter. Den normale "git show"-kommando indrykker de forskellige konfliktløsninger, hvilket gør ændringer svære at forstå. For eksempel, i skærmbilledet under linjen "+/-" uden indrykning viser den sidste løsning af konflikten forbundet med omdøbningen af ​​sha1 til oid i kommentaren i den første gren, og "+/-" med indrykning viser initialen løsning af konflikten forårsaget af fremkomsten af ​​et ekstra argument i den anden gren i dwim_ref()-funktionen.
    Git 2.36 kildekontroludgivelse

    Når du bruger "--remerge-diff" muligheden, adskilles forskellene mellem konfliktløsninger ikke for hver overordnet gren, men de overordnede forskelle mellem filen, der har flettekonflikter, og filen, der har konflikterne løst, vises.

    Git 2.36 kildekontroludgivelse

  • Øget fleksibilitet til at konfigurere adfærden til at tømme diskcaches via et kald til fsync()-funktionen. Den tidligere tilgængelige core.fsyncObjectFiles-parameter er blevet opdelt i to konfigurationsvariabler core.fsync og core.fsyncMethod, hvilket giver mulighed for at anvende fsync ikke kun på objektfiler (.git/objects), men også til andre git-strukturer såsom links ( .git /refs), reflog og pack-filer.

    Ved at bruge core.fsync-variablen kan du specificere en liste over interne Git-strukturer, for hvilke fsync yderligere vil blive kaldt efter en skriveoperation. Variablen core.fsyncMethod giver dig mulighed for at vælge en metode til at tømme cachen, for eksempel kan du vælge fsync for at bruge systemkaldet med samme navn, eller specificere kun udskrivning for at bruge sidecache-nedskrivning.

  • For at beskytte mod sårbarheder, der manipulerer andre brugeres substitution af .git-mapper i delte sektioner, er verifikation af lagerejer blevet styrket. Udførelse af alle git-kommandoer er nu kun tilladt i deres egne ".git"-mapper. Hvis biblioteket med depotet tilhører en anden bruger, vil der som standard blive vist en fejl. Denne adfærd kan deaktiveres ved hjælp af safe.directory-indstillingen.
  • Kommandoen "git cat-file", beregnet til at udlæse kildeindholdet af Git-objekter, er blevet suppleret med "--batch-command", som supplerer de tidligere tilgængelige "--batch" og "--batch-check ”-kommandoer med evnen til adaptivt at vælge output-typen ved at bruge " indhold <objekt>" for at vise indhold eller "info <objekt>" for at vise information om objektet. Derudover understøttes "flush"-kommandoen for at tømme outputbufferen.
  • Til kommandoen "git ls-tree", beregnet til at generere en liste over indholdet af et objekttræ, er "—oid-only" ("—object-only") muligheden blevet tilføjet, svarende til "-name-only" ”, der kun viser objektidentifikatorer for at forenkle opkaldet fra scripts. Også implementeret er "--format", som giver dig mulighed for at definere dit eget outputformat ved at kombinere oplysninger om tilstand, type, navn og størrelse.
  • Kommandoen "git bisect run" implementerer detekteringen af ​​ikke at indstille det eksekverbare filflag for et script og i dette tilfælde vise fejl med kode 126 eller 127 (tidligere, hvis scriptet ikke kunne køres, blev alle revisioner markeret som havende problemer) .
  • Tilføjet en --refetch mulighed til "git fetch" kommandoen for at hente alle objekter uden at informere den anden part om indholdet, der allerede er på det lokale system. Denne adfærd kan være nyttig til at gendanne efter fejl, når integriteten af ​​lokale data er usikker.
  • Kommandoerne "git update-index", "git checkout-index", "git read-tree" og "git clean" understøtter nu delvise indekser (sparse index) for at forbedre ydeevnen og spare plads i depoter, hvor der udføres delvise operationer. kloning (sparsom kasse).
  • Opførselen af ​​kommandoen "git clone —filter=... —recurse-submodules" er blevet ændret, hvilket nu fører til delvis kloning af undermoduler (tidligere, når sådanne kommandoer blev udført, blev filteret kun anvendt på hovedindholdet, og undermoduler blev klonet fuldstændigt uden at tage hensyn til filteret).
  • Kommandoen "git bundle" har tilføjet understøttelse til at specificere filtre til selektiv placering af indhold, svarende til delvise kloningsoperationer.
  • Tilføjet "--recurse-submodules" mulighed til "git branch" kommandoen for at krydse undermoduler rekursivt.
  • Userdiff tilbyder en ny handler til Kotlin-sproget.

Kilde: opennet.ru

Tilføj en kommentar