Utgivning av det distribuerade versionshanteringssystemet Git 2.24

TillgÀnglig utgivning av det distribuerade systemet för hantering av kÀllkod Git 2.24.0. Git Àr ett av de mest populÀra, pÄlitliga och högpresterande versionshanteringssystemen som erbjuder flexibla medel för icke-linjÀr utveckling, baserat pÄ grenning och sammanslagning. För att sÀkerstÀlla integriteten i historiken och motstÄndskraften mot bakÄtriktade Àndringar anvÀnds implicita hashning av hela den tidigare historien i varje commit, och det Àr ocksÄ möjligt att bekrÀfta med digitala signaturer av utvecklare för individuella taggar och commits.

JÀmfört med den senaste utgÄvan har den nya versionen tagit emot 544 Àndringar, som förberetts av 78 utvecklare, varav 21 deltog i utvecklingen för första gÄngen. Huvud nyheter:

  • Stöd för konfigurationsmakron har lagts till, vilket gör det möjligt att snabbt vĂ€xla mellan olika uppsĂ€ttningar instĂ€llningar utan att behöva gĂ„ in i detaljerna kring de specifika alternativen. Med makron behöver man inte komma ihĂ„g vilka instĂ€llningar som mĂ„ste Ă€ndras för att aktivera en viss funktion. Till exempel, i hĂ€ndelse av att man fĂ„r prestandaproblem med ett stort förrĂ„d, kan det vara nödvĂ€ndigt att byta till den nya indexeringsmetoden, aktivera komprimering av sökvĂ€gsprefix och anvĂ€nda cache för oövervakade filer genom att sĂ€tta parameter index.version till vĂ€rde 4 och aktivera core.untrackedCache. Makron gör att man kan spara tid pĂ„ att hitta rĂ€tt lösning i dokumentationen och direkt aktivera instĂ€llningar med optimeringar för förrĂ„d med mĂ„nga filer:

    git config feature.manyFiles true

  • Lagring av objekt i form av commit-grafer (commit-graph) Ă€r nu aktiverat som standard, dĂ€r en grafstruktur anvĂ€nds för indexering istĂ€llet för en linjĂ€r lista av objekt- och hashreferenser. Tidigare krĂ€vdes det att ladda ner varje objekt frĂ„n disken för att hitta lĂ€nkar för att bestĂ€mma versioner med en viss korrigering, men med lagring i grafform kan alla nödvĂ€ndiga relationer bestĂ€mmas omedelbart. ÖvergĂ„ngen till lagring i form av commit-grafer i Linux och Git-repositorier har möjliggjort nĂ€stan en tvĂ„faldig ökning av prestanda för operationer med grenar. För att aktivera den nya lagringsmetoden efter att ha uppdaterat till Git 2.24 bör kommandot 'git gc' köras.

    Bland Àndringarna relaterade till commit-graph noteras ocksÄ att indikatorn för operationens framsteg nu Àr enhetlig med andra kommandon i relaterade commit-graph-kommandon ("git commit-graph write", "git commit-graph verify" etc.). Framstegsinformationen visas numera som standard endast för terminalen (för att Àndra beteende ska alternativet "-[no-]progress" anvÀndas). Dessutom har en ny konfigurationsparameter fetch.writeCommitGraph lagts till, vilket möjliggör automatisk uppdatering av commit-graph-filen vid "git fetch"-operationer (alla commits som hÀmtas frÄn externa repository kommer omedelbart att gÄ till commit-graph utan behov av att köra auto-gc separat);

  • Ett kommando har lagts till för att skriva om Ă€ndringshistoriken — "git filter-repo", vilket Ă€r ett enklare alternativ till kommandot "git filter-branch" för att utföra operationer med Ă€ndringshistoriken i repositoryt (till exempel ta bort en fil frĂ„n repositoryt eller extrahera Ă€ndringshistoriken för en viss mapp). För att öka effektiviteten utförs operationerna i "git filter-repo" pĂ„ en kontinuerlig ström av historik istĂ€llet för ordnad granskning av commits.

    Filtrering av historik görs med hjÀlp av alternativet "-path-{glob,regex}", vilket möjliggör anvÀndning av bÄde enkla mönster och reguljÀra uttryck. Det finns ocksÄ alternativ för att utföra operationer för "sök och ersÀtt" eller för att rensa binÀra objekt vars storlek överskrider en angiven grÀns. Varje omskriven commit fÄr en ny SHA-1 hash-ID och alla referenser till den ersatta commit uppdateras i enlighet med det nya identifieringsnumret.

    För att fÄ en sammanfattning med statistik om repositoryt (antal objekt per typ, de största filerna och mapparna, vilka filÀndelser som krÀver mest diskutrymme osv.) finns alternativet "-analyze". För att utöka funktionaliteten finns det möjlighet att ansluta godtyckliga callback-handlÀggare skriven i Python, genom vilka man bÄde kan skapa nya underkommandon och bearbeta olika hÀndelser (till exempel nya filtyper);

  • Alternativet „—end-of-options“ har lagts till, vilket möjliggör separering av alternativ frĂ„n lĂ€nknamn som kan börja med tecknet „-“ och uppfattas som alternativ („git log —end-of-options —super-dangerous-option“). Om sĂ„dana namn i praktiken kan undvikas som „git log ‘refs/heads/—super-dangerous-option'“, kan det ha uppstĂ„tt problem med att faststĂ€lla namnrymden i skript. Den vanliga avgrĂ€nsaren „—“ Ă€r i det hĂ€r fallet inte tillĂ€mplig, eftersom den redan anvĂ€nds för att separera lĂ€nknamn frĂ„n filer (t.ex. „git log —end-of-options —super-dangerous-option ^master — path/to/file“);
  • I „git rebase —rebase-merges“ har alternativet „—strategy“ och „—strategy-option“ lagts till för att vĂ€lja sammanslagningsstrategi;
  • En ny hanterare „.git/hooks/pre-merge-commit“ har lagts till, som anropas efter att sammanslagningen har utförts, men före inspelning av den resulterande committen;
  • Kommandots autocompletion-motor har lagts till stöd för att komplettera konfigurationsvariabler kopplade till specifika kommandos instĂ€llningar.
    Till exempel, om du behöver skriva „git -c core.autocrlf=false add path/to/my/file“, men inte kommer ihĂ„g det exakta namnet pĂ„ variabeln „core.autocrlf“, kan du trycka pĂ„ Tab för att fĂ„ en hint.

Dessutom har Git-utvecklarna lagt till upptrĂ€dandekoden för projektets deltagare, som definierar de grundlĂ€ggande principerna för att lösa konfliktsituationer. Dokumentet baseras pĂ„ rekommendationerna för „Contributor Covenant“, som tillĂ€mpas i mĂ„nga öppna projekt, inklusive Linux-kĂ€rnan, Eclipse, Freedesktop, GitLab, Ruby och Kubernetes. Dokumentet faststĂ€ller lika möjligheter för alla deltagare, oavsett deras livsĂ„skĂ„dning, Ă„lder, kön, religiös övertygelse, utbildningsnivĂ„, social status och nationalitet. I samhĂ€llet uppmuntras vĂ€nlig kommunikation, förstĂ„else, medkĂ€nsla för andras problem, mottagande av konstruktiv kritik, och antagande av de bĂ€sta lösningarna för hela samhĂ€llet. Trakasserier, krĂ€nkande kommunikation, försök till nedvĂ€rdering, trakasseri, intrĂ„ng i privatlivet, avslöjande av personuppgifter samt andra Ă„tgĂ€rder som kan anses olĂ€mpliga vid professionell kommunikation Ă€r inte tillĂ„tna.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster