Udgivelsen af versionsstyringssystemet Git 2.35

Efter to måneders udvikling er udgivet version 2.35 af det distribuerede systems styresystem for kildekode Git. Git er et af de mest populære, pålidelige og højtydende versionsstyringssystemer, der tilbyder fleksible muligheder for ikke-lineær udvikling, baseret på forgrening og sammenfletning af grene. For at sikre integriteten af historien og modstandskraften mod "tilbagevirkende" ændringer anvendes implicit hashing af al tidligere historie i hver commit, og det er også muligt at bekræfte digitale signaturer fra udviklerne af individuelle tags og commits.

Sammenlignet med den forrige version er der i den nye version accepteret 494 ændringer, forberedt med deltagelse af 93 udviklere, hvoraf 35 deltager i udviklingen for første gang. De vigtigste nyheder er:

  • Mulighederne for brug af SSH-nøgler til at bekræfte Git-objekter med digitale signaturer er blevet udvidet. For at adskille gyldighedsperioden for flere nøgler er der tilføjet støtte til OpenSSH-direktiverne "valid-before" og "valid-after", som gør det muligt at sikre korrekt funktionalitet med signaturer efter rotation af en af udviklernes nøgler. Tidligere var der et problem med at adskille signaturer fra den gamle og nye nøgle — hvis den gamle nøgle blev fjernet, kunne de signaturer, der var lavet med den, ikke kontrolleres, og hvis den blev efterladt, ville muligheden for at lave nye signaturer med den gamle nøgle, som nu var blevet erstattet af en anden nøgle, fortsætte. Ved hjælp af valid-before og valid-after kan man adskille nøglers gyldighedsområde baseret på tidspunktet for oprettelsen af signaturen.
  • I indstillingen merge.conflictStyle, der giver mulighed for at vælge, hvordan konfliktinformation præsenteres ved sammenfletning, er der tilføjet støtte til "zdiff3"-tilstand, der flytter alle standardlinjer angivet i starten eller slutningen af konflikten uden for konfliktområdet, hvilket gør det muligt at opnå en mere kompakt præsentation af informationen.
  • I kommandoen «git stash» er tilføjet mode «—staged», som gør det muligt kun at skjule ændringer, der er tilføjet til indekset, for eksempel i situationer, hvor man midlertidigt skal udsætte nogle komplekse ændringer for først at tilføje det, der allerede er klart, og derefter tage sig af resten senere. Dette mode minder om kommandoen «git commit», der optager kun de ændringer, der er indsat i indekset, men i stedet for at oprette en ny commit i «git stash —staged» gemmes resultatet i en midlertidig stash. Når ændringerne er nødvendige, kan de hentes tilbage med kommandoen «git stash pop».
  • I kommandoen «git log» er der tilføjet en ny format-specifikator «—format=%(describe)», der gør det muligt at kombinere output fra «git log» med resultatet af kommandoen «git describe». Parametrene for «git describe» angives direkte inden for specifikatoren («—format=%(describe:match=,exclude=)»), hvor man også kan inkludere forkortede tags («—format=%(describe:tags=)») og konfigurere antallet af hexadecimale tegn til identifikation af objekter («—format=%(describe:abbrev=)»). For eksempel, for at vise de 8 seneste commits, hvis tags ikke har en kandidat til udgivelse-label, og angive 8-tegns identifikatorer, kan man bruge kommandoen: $ git log -8 —format='%(describe:exclude=*-rc*,abbrev=13)' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2b95d94b056ab v2.34.1-642-gb56bd95bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640-gdf3c41adeb212 v2.34.1-639-g36b65715a4132
  • I indstillingen user.signingKey er der blevet implementeret støtte til nye nøgletype, der ikke kun begrænser sig til typen «ssh-» og angivelsen af den fulde filsti til nøglen. Alternative typer angives med præfikset «key::», for eksempel «key::ecdsa-sha2-nistp256» for ECDSA-nøgler.
  • Hastigheden på genereringen af ændringslisten i mode «—histogram» er markant forbedret, ligesom ved brug af optionen «—color-moved-ws», som styrer fremhævelsen af mellemrum i en farvet diff.
  • I kommandoen «git jump», som bruges til at give Vim information om præcise bevægelser til den ønskede position i filen under opløsning af sammenfletningskonflikter, visning af forskelle eller udførelse af en søgeoperation, er der givet mulighed for at indsnævre omfanget af de omhandlede sammenfletningskonflikter. For eksempel, for at begrænse operationerne til kun mappen «foo», kan man angive «git jump merge — foo», og for at udelukke mappen «Documentation» fra behandlingen — «git jump merge — ':^Documentation'».
  • Der er blevet arbejdet på at standardisere brugen af typen «size_t» i stedet for «unsigned long» til værdier, der repræsenterer størrelsen på objekter, hvilket har gjort det muligt at anvende filtrene «clean» og «smudge» med filer større end 4 GB på alle platforme, herunder platforme med LLP64 datamodel, hvor typen «unsigned long» er begrænset til 4 bytes.
  • Til kommandoen «git am» er der tilføjet en option «—empty=(stop|drop|keep)», som gør det muligt at vælge adfærd for tomme e-mails, der ikke indeholder patches, når der behandles patches fra indbakken. Værdien «stop» afslutter hele patch-anvendelsesoperationen, «drop» springer den tomme patch over, og «keep» opretter et tomt commit.
  • Kommandoerne «git reset», «git diff», «git blame», «git fetch», «git pull» og «git ls-files» har fået støtte for delvise indekser (sparse index), hvilket forbedrer ydeevnen og sparer plads i repositories, hvor der udføres delvise kloning (sparse-checkout).
  • Kommandoen «git sparse-checkout init» er blevet erklæret forældet, og i stedet bør «git sparse-checkout set» anvendes.
  • Der er tilføjet en første implementering af den nye backend «reftable» til opbevaring af references, såsom grene og tags, i repositoriet. Den nye backend bruger en bloklagringsmetode anvendt af projektet JGit og er optimeret til opbevaring af et meget stort antal references. Backend'en er endnu ikke integreret med referencesystemet (refs) og er ikke klar til praktisk brug.
  • Farvepaletten for kommandoen «git grep» er blevet tilpasset GNU grep-værktøjet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster