Git 2.54

Git 2.54

Presentert utgjeving av eit distribuert system for versjonskontroll Git 2.54. Git skiller seg ut med hÞg ytelse og gir verktÞy for ikkje-lineÊr utvikling basert pÄ greinings- og samanslÄingsmetodar. For Ä sikre integriteten til historikken og motstandsdyktigheit mot 'tilbakeslag', blir det brukt implicitt hashing av heile tidlegare historikk i kvar commit, samt digital signering av utviklarar for enkelte taggar og commits. Koden til Git distribueres under GPLv2+-lisens.

Samanlikna med den tidlegare utgÄva inkluderer den nye versjonen 770 endringar, laga med deltaking av 137 utviklarar (66 deltok for fyrste gong i utviklinga av Git).

Viktige nyheter:

  • Det er implementert ein kommando «git history», som gir eksperimentelle moglegheiter for Ă„ omskrive endringshistorikken, enklare og sikrare Ă„ bruke enn Ă„ rebasa commits med git rebase. Det blir tilbydd to operasjonar:

    • git history reword for Ă„ omskrive meldinga i den spesifiserte commit utan Ă„ endre arbeidsverktĂžyet og indeksen (bortsett frĂ„ merknaden, resten forblir uendra). Til dĂžmes, for Ă„ rette ein skrivefeil.
    • git history split for interaktiv deling av den spesifiserte commit i to ulike commits ved Ă„ flytte valde delar frĂ„ den opphavlege commit til ein ekstra commit.

    I framtidige utgÄver er det forventa Ä legge til fleire kommandoar: git history fixup for Ä rette ein commit, git history drop for Ä fjerne ein commit, git history reorder for Ä endre rekkefylgje av commits og git history squash for Ä slÄ saman commits.

  • Ein ny metode for Ă„ definere handterar har blitt implementert (hook) i konfigurasjonsfiler. I stedet for Ă„ plassere skripter med hĂ„ndterere i katalogen .git/hooks i hver enkelt repository, kan nĂ„ kommandoene for Ă„ kalle hĂ„ndtererne spesifiseres direkte i konfigurasjonsfilene. Innstillingene kan knyttes til et repository eller angis i konfigurasjonsfiler som gjelder for alle repositories (/etc/gitconfig) eller brukerens repositories (~/.gitconfig). Det er mulig Ă„ knytte flere hĂ„ndterere til Ă©n hendelse. Skriptene fra .git/hooks vil fortsatt bli kalt, men kjĂžres etter hĂ„ndtererne fra konfigurasjonsfilene. For Ă„ se listen over hĂ„ndterere bĂžr man bruke kommandoen git hook list, og for Ă„ selektivt deaktivere kallet til hĂ„ndterere brukes innstillingen hook..enabled = false:

[hook "linter"] event = pre-commit command = ~/bin/linter --cpp20 [hook "no-leaks"] event = pre-commit command = ~/bin/leak-detector $ git hook list pre-commit global linter ~/bin/linter --cpp20 local no-leaks ~/bin/leak-detector

  • I kommandoen «git maintenance» er den geometriske strategien som standard aktivert (git config set maintenance.strategy geometric), som reduserer vedlikeholdstiden for store monorepositories. I forhold til den tidligere strategien, som brukte logikken fra git gc-kommandoen, unngĂ„r den nye strategien Ă„ pakke om alle objektene og ekskluderer ressurskrevende operasjoner, som Ă„ slĂ„ sammen alle pakke-filer (sammenfĂžyning skjer i deler og uten opprydning av slettede objekter nĂ„r det er mulig).
  • Objekt-databasen (ODB) og tilknyttede API-er er overfĂžrt til en ny arkitektur, basert pĂ„ bruken av pluggbare backend-er. Restruktureringen abstraherer lagringsformatet for objektene og vil i fremtiden muliggjĂžre funksjoner som alternative backend-er og objektformat, for eksempel for mer effektiv lagring av store binĂŠrfiler eller for Ă„ optimalisere driften av store git-hosting.
  • I kommandoen «git repo struktur», som viser informasjon om repositoriets struktur, har fĂ„tt utvidet visning av ikke bare total stĂžrrelse, men ogsĂ„ de stĂžrste objektene av hver type, noe som gjĂžr at man kan vurdere stĂžrrelse uten Ă„ bruke eksterne verktĂžy. git-sizer.

$ git repo structure 
 | * Stþrste objekter | | | * Commits | | | * Maksimal stþrrelse [1] | 17.23 KiB | | * Maksimal foreldre [2] | 10 | | * Trees | | | * Maksimal stþrrelse [3] | 58.85 KiB | | * Maksimal oppfþringer [4] | 1.18 k | | * Blobs | | | * Maksimal stþrrelse [5] | 1019.51 KiB | | * Tags | | | * Maksimal stþrrelse [6] | 7.13 KiB |

  • I kommandoen «git replay», brukt i stedet for git rebase for Ă„ gjenskape historien pĂ„ serveren uten arbeidskatalog, inkluderer en atomĂŠr oppdatering av referanser som standard (i stedet for Ă„ skrive ut oppdateringsreferansene til manuelt utfĂžrelse), muligheten —revert for Ă„ annulere endringer fra en serie commits, sikrer at resulterende tomme commits blir forkastet, og muligheten for Ă„ gjenskape historien helt tilbake til rotcommit.
  • I «git rev-list» og lignende kommandoer er det lagt til et alternativ —maximal-only for Ă„ vise bare commits som ikke er tilgjengelige via andre commits.
  • I kommandoen «git repo info» er det lagt til et alternativ —keys for Ă„ vise en liste over alle kjente nĂžkler.
  • I kommandoen «git add -p» ved navigering mellom kodemoduler med tastene «J» og «K» er det mulig Ă„ merke allerede godkjente og oversette moduler. Et alternativ —no-auto-advance er lagt til for Ă„ deaktivere automatisk overgang til neste fil, slik at du kan gĂ„ tilbake til tidligere filer fĂžr commit.
  • Det har blitt optimalisert webgrensesnittet «gitweb» for bruk fra mobile enheter.
  • I kommandoen «git apply –directory» fĂžr bruk, er filstier som .\/un\/..\/normalized\/path normalisert.
  • Dokumentert muligheten til Ă„ legge til egne underkommandoer ved Ă„ plassere filene git-<cmd> i katalogen med utfĂžrbare filer.
  • I kommandoen «git send-email» har lagt til stĂžtte for klientsertifikater.
  • For kommandoen «git status» er det implementert en innstilling status.compareBranches, hvor du kan spesifisere grenene som den nĂ„vĂŠrende grenen skal sammenlignes med:

[status] compareBranches = @{upstream} @{push}

  • I «git rebase» har fĂ„tt alternativet —trailer for Ă„ forenkle tillegg av metadata til alle commits:

git rebase —trailer "Reviewed-by: Test <test@example.com>"`

  • I kommandoen «git fast-import» har fĂ„tt muligheten til Ă„ erstatte signaturer for commits som blitt ugyldige etter import.
  • StĂžtta for pakking (compaction) av multifilindekser MIDX (multi-pack index) er lagt til, der smĂ„ lag av MIDX-indekser som inneholder informasjon om tilgjengelighet av objekter og tilknyttede bitmap-filer blir samlet, noe som reduserer antallet oppsamlede lag i gamle repositorier.
  • I git backfill-teamet er det implementert mulighet for Ă„ spesifisere revisjoner (kommitintervaller) og sti-maske (pathspec) for Ă„ begrense hvilke deler av endringshistorikken som lastes ned:

git backfill main~100..main git backfill -- '*.c'

  • Alternative former for Ă„ kalle kommandoen git config list er lagt til – git config -l og git config --list.
  • Bruk av ikke-ASCII-tegn i navnene pĂ„ kommandoaliasene som er angitt i konfigurasjonsfilen er tillatt:

[alias "hent"] command = fetch

  • Vise av signaturer som har utlĂžpt GPG-nĂžkler, men som var gyldige pĂ„ tidspunktet for signering av commit, er endret. Slike signaturer vises nĂ„ som gyldige med merknad om at nĂžkkelen er foreldet (tidligere ble de uthevet i rĂždt, noe som skapte inntrykk av at de var feilaktige).
  • NĂ„r man prĂžver Ă„ fĂ„ tilgang til repositorier via HTTP, er behandling av feilkode 429 (For mange forespĂžrsel) sikret. ForespĂžrsel som resulterer i slik feil vurderes nĂ„ ikke som en fatalt problem, men som en midlertidig feil som bĂžr gjentas etter en viss tid. Forsinkelsen fĂžr gjentakelse settes gjennom alternativet http.retryAfter, antall gjentakelser – http.maxRetries, og ventetiden – http.maxRetryTime.

Kilde: linux.org.ru

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster