Release fan Git 2.52 boarne kontrôle systeem

Nei trije moannen ûntwikkeling is Git 2.52, in ferspraat boarnekoadebehearsysteem, útbrocht. Git hat hege prestaasjes en biedt net-lineare ûntwikkelingsmooglikheden basearre op branching en merging. Om histoaryske yntegriteit en fearkrêft tsjin retroaktive feroarings te garandearjen, brûkt it ymplisite hashing fan 'e heule foarige skiednis yn elke commit, lykas digitale hantekeningen fan yndividuele tags en commits. Git is lisinsearre ûnder de GPLv2+ lisinsje.

Yn ferliking mei de foarige release befettet de nije ferzje 637 feroarings, bydroegen troch 94 ûntwikkelders (33 dêrfan wiene nij yn Git-ûntwikkeling). Wichtige nije funksjes (1, 2, 3):

  • It kommando "git last-modified" tafoege om in list mei bestannen yn in oantsjutte revisje wer te jaan en de commits dy't elk bestân it lêst oanpast hawwe. $ git last-modified HEAD b56f6dcd7b4c90192018e848d0810f091d092913 test.h 29330ae4b820147c98e723399e9438c8bee60a8a test1.c 573ad8917beb99dc643b6e7f5c117a294384a575 test2.c
  • It kommando "git repo" tafoege foar it útfieren fan aksjes relatearre oan it opheljen fan ynformaasje út in repository. Twa subkommando's, "git repo info" en "git repo structure", wurde levere, dy't ynformaasje werjaan oer repository-ynstellingen en details oer de repository-struktuer (bygelyks, jo kinne it oantal ferwizings en objekten yn 'e repository útfine). $ git repo info object.format references.format object.format=sha1 references.format=reftable $ git repo structure | Repository-struktuer | Wearde | | ——————— | —— | | * Referinsjes | | | * Oantal | 1983 | | * Tûken | 4 | | * Tags | 1125 | | * Ofstânsbetsjinningen | 854 | | * Oaren | 0 | | | | | * Bereikbere objekten | | | * Oantal | 518955 | | * Commits | 77469 | | * Beammen | 188865 | | * Blobs | 251631 | | * Tags | 990 |
  • It git refs-kommando is bywurke mei trije subkommando's dy't ferskillende en oerlappende leechnivo-operaasjes op referinsjes ferienigje (git for-each-ref, git show-ref, git update-ref, en git pack-refs):
    • "git refs optimize" - optimalisaasje fan 'e referinsjeopslachbackend (fergelykber mei "git pack-refs").
    • "git refs list" - toant in list mei alle referinsjes (fergelykber mei "git for-each-ref" of "git show-ref").
    • "git refs exists" - kontrolearret it bestean fan in referinsje (analooch oan "git show-ref --exists").
  • It formaat foar it eksportearjen en ymportearjen fan commit-skiednis is útwreide om kryptografyske hantekeningen te stypjen mei sawol SHA-1 as SHA-256-basearre objektidentifiers. It kommando "git fast-import" stipet no it ferwurkjen fan ûndertekene tags fergelykber mei ûndertekene commits. De opsjes "--signed-commits=<mode>" en "--signed-tags=<mode>" binne tafoege om de ferwurking fan ûndertekene commits en tags tidens ymport te kontrolearjen (modus kin verbatim, warn-verbatim, warn-stri, strip of abort wêze).
  • It kommando "git maintenance" stipet no in nije "geometryske" strategy ("git config set maintenance.strategy geometric"), dy't de ûnderhâldstiid foar grutte monorepositories ferminderet. Yn ferliking mei de earder beskikbere strategy, dy't logika brûkte dy't fergelykber wie mei "git gc", foarkomt de nije strategy it opnij ynpakken fan alle objekten en elimineert boarne-yntinsive operaasjes lykas it gearfoegjen fan alle packfiles (wêr mooglik wurdt gearfoeging yn dielen útfierd en sûnder wiske objekten te wiskjen).
  • It kommando 'git sparse-checkout clean' tafoege om it makliker te meitsjen om de wurkmapstatus te herstellen troch bestannen te ferwiderjen dy't net oerienkomme mei de nije sparse-checkout-definysje en dy't net oanwêzich moatte wêze yn 'e lokale kopy neffens de hjoeddeistige sparse-checkout-ynstellingen.
  • Om kompleksiteit út 'e koadebasis te ferwiderjen en ûnderhâld te ferienfâldigjen, waard in refactoring útfierd om it gebrûk fan 'e globale fariabele the_repository te ferminderjen.
  • It gebrûk fan Bloom-filters, in probabilistysk ramt foar it kontrolearjen fan setlidmaatskip dat falske positiven fan ûntbrekkende eleminten mooglik makket, mar it weilitten fan besteande eleminten foarkomt, is útwreide. Bloom-filters wurde no brûkt om sykaksjes yn 'e feroaringshistoarje te fersnellen by it oantsjutten fan jokertekens yn bestânspaden, bygelyks "foo/bar/*/baz".
  • De prestaasjes fan it kommando "git describe" binne mei maksimaal 30% ferhege troch it brûken fan in prioriteitswachtrige. Referinsje-omneamingsoperaasjes yn "git remote rename" binne fersneld. It gebrûk fan yndeksen is útwreide yn "git ls-files". It kommando "git log -L" is flink fersneld troch it eliminearjen fan ûnnedige trije-nivo-fergelikingen by it ferwurkjen fan merge commits. Optimalisaasjes binne makke oan de xdiff-bibleteek.
  • In opsjonele Rust-ymplemintaasje fan guon ynterne funksjes, lykas it kodearjen en dekodearjen fan gehielgetallen mei fariabele lingte, is yntrodusearre. Rust-koade wurdt standert net brûkt en fereasket dat de WITH_RUST-buildflagge ynskeakele is. Yn 'e takomst wurdt ferwachte dat wichtiger ynterne Git-komponinten opnij skreaun wurde yn Rust, en Rust sil tafoege wurde as in fereaske buildôfhinklikens yn Git 3.0.
  • De list mei brekkende feroarings dy't tapast wurde sille yn 'e Git 3.0-tûke is bywurke. Yn Git 3.0 sil de standertynstelling init.defaultBranch feroare wurde nei "main", wat betsjut dat de standerttûke yn repositories makke mei it kommando "git init" "main" neamd wurdt ynstee fan "master". In oerskeakeling nei SHA-256-basearre objektidentifiers by it ynisjalisearjen fan nije repositories wurdt ek neamd. Om portabiliteit tusken repositories mei SHA-1- en SHA-256-basearre objektidentifiers te ferienfâldigjen, is de mooglikheid om nei en fan in repository te pushen mei ien hashingalgoritme en in repository mei in oar hashingalgoritme no beskikber.

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster