Git 2.37 er allerede frigivet, og det er dens nyheder

Lanceringen af den nye version af Git 2.37, der er en af mest populære versionskontrolsystemer, pålidelig og højtydende software, der giver fleksible ikke-lineære udviklingsværktøjer baseret på gafler og sammenlægninger af gafler.

For at sikre historiens integritet og modstand mod ændringer, bruges den "baglæns" implicitte hash af al tidligere historie på hver commit, det er også muligt at verificere de digitale signaturer fra individuelle tag- og commit-udviklere.

Git 2.37 Nøgle nye funktioner

Sammenlignet med den tidligere version, 395 ændringer blev accepteret i den nye version, udarbejdet med deltagelse af 75 udviklere, hvoraf 20 deltog i udviklingen for første gang.

I denne nye version fremhæves det mekanismen for partielle indekser (sparse index), som kun dækker en del af depotet, se er forberedt til udbredt brug. Delvise indekser kan forbedre ydeevnen og spare plads i depoter, der udfører delvise klonoperationer (spare checkout) eller opererer på en ufuldstændig kopi af depotet.

Den nye version fuldender arbejdet med integration af delvise indekser i kommandoer "git show", "git sparse-checkout" og "git stash". Den mest bemærkelsesværdige præstationsgevinst ved at bruge delvise indekser er i kommandoen "git stash", som er op til 80 % hurtigere i nogle situationer.

En anden ændring, der skiller sig ud, er den en ny "cruft packs"-mekanisme er blevet implementeret at pakke uopnåelige objekter, der ikke refereres til i repository (ikke refereret af grene eller tags). Skraldeopsamleren sletter uopnåelige objekter, men de forbliver i depotet i et vist stykke tid, før de sletter dem for at undgå raceforhold. For at spore perioden for uopnåelige objekter kræves binding, de er tagget med ændringstidspunktet for lignende objekter, hvilket ikke tillader dem at blive gemt i en bundle-fil, hvor alle objekter har en fælles ændringstid.

Ved at gemme hvert tidligere brugt objekt i en separat fil, forårsagede filen problemer i nærværelse af et stort antal nye uopnåelige objekter, ikke endnu. Den foreslåede "cruft packs"-mekanisme gør det muligt at lagre alle uopnåelige objekter i en bundle-fil, og data om ændringstiden for hvert objekt afspejles i en separat tabel gemt i en fil med filtypenavnet ".mtimes".

Til Windows og macOS er der en indbygget mekanisme at holde styr på ændringer i filsystemet, som eliminerer behovet for at liste hele arbejdsbiblioteket når du udfører handlinger som "git status". Tidligere, for at spore ændringer via kroge, kunne du tilslutte eksterne filsystemændringssporingsværktøjer, såsom Watchman, men dette krævede installation af yderligere programmer og konfigurationer. Denne funktionalitet er nu indbygget og kan aktiveres med "git config core.fsmonitor true".

Kommandoen "git sparse-checkout" er holdt op med at understøtte et alternativ til "--cone"-tilstand skabelondefinition for delvis kloning, som tillader, når man definerer den del af depotet, der er genstand for kloningsoperationen, at liste individuelle filer ved hjælp af ".gitignore"-syntaksen, som ikke tillader brug til optimering af delvise indekser.

Af de andre ændringer der skiller sig ud:

  • Forbedret fleksibilitet ved konfiguration af fsync()-kaldet til at tømme ændringer til disk.
  • Tilføjet understøttelse af "batch"-synkroniseringsstrategien til parameteren "core.fsyncMethod", som fremskynder arbejdet, når du skriver et stort antal separate filer ved at akkumulere ændringer i omskrivningscachen, der skylles af et enkelt fsync()-kald.
  • Traversal-kommandoer som "git log" og "git rev-list" har nu muligheden "–since-as-filter=X" til at filtrere information om commits, der er ældre end "X".
  • I kommandoen "git remote", angiver flaget "-v" information om delvise kloner af depotet.
  • Tilføjet "transfer.credentialsInUrl" indstilling, som kan tage værdierne "warn", "die" og "allow". Hvis parameteren "fjern. .url" angiver legitimationsoplysninger i almindelig tekst, et forsøg på at udføre "get" eller "push" operationer vil mislykkes, hvis "transfer.credentialsInUrl" indstillingen er sat til "die", eller en advarsel, hvis den er sat til "warn" .
  • Som standard bruges den nye interaktive tilstandsimplementering af kommandoen "git add -i", omskrevet fra Perl til C.

Endelig hvis du er interesseret i at vide mere om det, kan du kontrollere detaljerne I det følgende link.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort.

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.