Udgivelse af versionskontrolsystemet Git 2.44

Efter tre måneders udvikling er udgivelsen af det distribuerede versionskontrolsystem Git 2.44 offentliggjort. Git er et af de mest populære, pålidelige og højtydende versionskontrolsystemer, der tilbyder fleksible værktøjer til ikke-lineær udvikling baseret på grene og sammensmeltning. For at sikre integriteten af historien og modstandsdygtighed over for ændringer 'efterfølgende' anvendes implicit hashing af hele den tidligere historie i hver commit, og der er også mulighed for verificering med digitale signaturer af udviklerne af enkelte tags og commits. Git-koden distribueres under GPLv2+-licensen.

Sammenlignet med den forrige udgave er der i den nye version accepteret 503 ændringer, som er udarbejdet med deltagelse af 85 udviklere, hvoraf 34 deltager i udviklingen for første gang. De vigtigste nyskabelser:

  • Der er tilføjet en ny kommando «git replay», som kan bruges som et alternativ til «git rebase» og anvendes til at genskabe historien på serveren et uden arbejdsbibliotek (bare repository, der ikke indeholder et arbejdsbibliotek), håndtering af flere grene simultant, udførelse af rebase-operationer for grene, der ikke er udtrukket i øjeblikket, eller blot for at fremskynde sammensmeltningens operationer.
  • Der er tilføjet støtte til GitLab CI kontinuerlig integrationssystem.
  • Kommandoerne «git add» og «git stash» har fået støtte for sti-attributter «:(attr:…)», som defineres analogt med kommandoen «git show». For eksempel kan «git add ‘:(attr:~binary)'» bruges til at tilføje alle tekstfiler (ikke-binære) til indekset. Derudover er der i den nye udgave tilføjet attributten «builtin_objectmode» til filtrering af filstier baseret på adgangsrettigheder. For eksempel kan «git add ‘:(attr:builtin_objectmode=100755)'» bruges til at tilføje alle eksekverbare filer.
  • Der er tilføjet support til genbrug af objekter fordelt over flere pakke-filer, for hvilke der er en sammenfattende indeks (multi-pack-index) med data om tilgængeligheden af objekter (optimering, der muliggør at henvise til brugen af data, der allerede findes i pakke-filerne i stedet for faktisk overførsel af data). Fra version 2.44 kan git nu håndtere genbrug af objekter på tværs af flere pakke-filer uden behov for at ompakke repository'et til én pakke-fil. For at aktivere den nye funktion skal følgende kommandoer køres: git config —global pack.allowPackReuse multi git multi-pack-index write —bitmap

    Herefter kan antallet af pakke-filer, hvor objekter genbruges, spores i værdien "pack-reused … (from N)", der vises ved udførelse af "git push".

  • Kommandoen "git rebase —autosquash" kan nu anvendes til rebase operationer i ikke-interaktiv tilstand, hvilket muliggør udførelse af rebase og hurtig anvendelse af fixup-rettelser uden at inspicere ændringslisten og uden at ændre miljøvariablen GIT_SEQUENCE_EDITOR.
  • Der er tilføjet en mulighed "—diff-algorithm" til kommandoen "git merge-file" for at vælge en alternativ algoritme til vurdering af forskelle mellem filer.
  • I kommandoen "git checkout -B []" er det ikke længere tilladt at opdatere og hente grene, der bruger et andet arbejdstræ. For at tilbageføre den gamle adfærd er mulighederne "—ignore-other-worktrees" tilføjet.
  • Der er tilføjet mulighed for at sætte "git config advice.pushAlreadyExists" til "true", hvilket fjerner vejledningen (hint) om, hvordan man deaktiverer den, der tager plads på skærmen.
  • Udførelsen af kommandoen "git for-each-ref" med indstillingen "—no-sort" er optimeret, hvilket nu fører til output i uspecificeret rækkefølge (tidligere blev der stadig anvendt alfabetisk sortering, selv ved "—no-sort"). Efter optimeringer gør brugen af "—no-sort" nu "git for-each-ref" cirka 20% hurtigere i repositories med et stort antal referencer.
  • Backend'en til håndtering af legitimationsoplysninger wincred har fået tilføjet support til opdatering af OAuth-tokens, på samme måde som det er implementeret i backend'erne credential-cache og credential-libsecret.
  • I "git fetch" er der tilføjet support til konfigurationsparameteren "fetch.all", som vil blive behandlet på samme måde som tilføjelsen af indstillingen "—all" i kommandolinjen.

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