Release fan it ferspraat boarnekontrôlesysteem Git 2.25

Beskikber frijlitting fan it ferspraat boarne kontrôle systeem git 2.25.0. Git is ien fan 'e populêrste, betroubere en heechprestearjende ferzjekontrôlesystemen dy't fleksibele net-lineêre ûntwikkelingsynstruminten leveret basearre op tûken en gearfoegjen fan tûken. Om de yntegriteit fan 'e skiednis en ferset tsjin retroaktive wizigingen te garandearjen, wurdt ymplisite hashing fan' e hiele foarige skiednis yn elke commit brûkt, it is ek mooglik om yndividuele tags te ferifiearjen en commits mei digitale hantekeningen fan 'e ûntwikkelders.

Yn ferliking mei de foarige release waarden 583 wizigingen akseptearre yn 'e nije ferzje, taret mei de dielname fan 84 ûntwikkelders, wêrfan 32 foar it earst meidien oan 'e ûntwikkeling. haad ynnovaasjes:

  • De mooglikheid fan partiel klonen komt oan stabilisaasje en folsleine reewilligens, wêrtroch jo mar in diel fan 'e gegevens kinne oerdrage en wurkje mei in ûnfolsleine kopy fan it repository. In typyske kloon kopiearret alle gegevens fan it repository, ynklusyf elke ferzje fan elke triem yn 'e wizigingsskiednis. Foar heul grutte repositories resultearret it kopiearjen fan gegevens yn in signifikante ferheging fan ferkear en skiifromte, sels as de ûntwikkelder allinich ynteressearre is yn in subset fan 'e bestannen. Om it makliker te meitsjen om mar in diel fan 'e wurkjende boarnebeam werom te heljen, yntrodusearret de nije release in eksperiminteel "sparse-checkout" kommando en in nije "--sparse" opsje foar it "clone" kommando.

    Earder waard it selektive klonproses útfierd troch de taak filters om ûnnedige ynhâld te filterjen en de opsje "-no-checkout" om it ynfoljen fan ûntbrekkende bestannen út te skeakeljen. Dêrnei, foardat jo de kassa-operaasje útfiere, wie it nedich om de ynstelling fan core.sparseCheckout yn te skeakeljen en in list fan útsletten paadpatroanen te definiearjen yn it .git/info/sparse-checkout-bestân. Om bygelyks sûnder blobs te klonen en te foarkommen dat bestannen wurde ekstrahearre út submappen fan djipte 2 of mear, kinne jo útfiere:

    git clone --filter = blob: gjin --no-checkout /jo/repository/hjir repo
    $cd repo
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout.

    It nije kommando "git sparse-checkout" ferienfâldigt it wurk sterk en ferminderet it proses fan it organisearjen fan wurk mei in ûnfolsleine repository nei de folgjende kommando's:

    git clone --filter = blob: gjin --sparse /jo/repository/hjir repo
    git sparse-checkout set /path/to/check/out

    It kommando sparse-checkout lit jo in list mei paden ynstelle foar kassa (set) sûnder .git/info/sparse-checkout mei de hân te konfigurearjen, en ek de aktuele list fan paden (list) werjaan en dielberekkeningen yn- of útskeakelje (ynskeakelje / útskeakelje).

    Om wurk te optimalisearjen mei heul grutte repositories en listen mei sjabloanen, de "git config core.sparseCheckoutCone", dy't tastiene patroanen beheint (ynstee fan willekeurige .gitignore-patroanen kinne jo opjaan oft alle paden en alle bestannen yn in opjûne submap moatte wurde útcheckt). Bygelyks, as in grut repository in map "A/B/C" hat en al it wurk is konsintrearre yn 'e submap "C", dan as jo de sparseCheckoutCone-modus ynskeakelje, it kommando "git sparse-checkout set A/B/ C" sil de folsleine ynhâld fan "C" ekstrahearje, mar fan "A" en "B" sil it allinich de dielen ekstrahearje dy't nedich binne om mei "C" te wurkjen.

  • Ut de dokumintaasje ("git rebase -h") binne alle ferwizings nei de opsje "--preserve-merges" fuortsmiten, dy't ôfret is en ynstee brûkt wurde moat om in set commits te migrearjen.git rebase --rebase-fusearje".
  • Om de lêsberens fan berjochten te ferbetterjen mei patches dy't nei ferstjoerlisten ferstjoerd binne, is de opsje "git format-patch -cover-from-description subject" tafoege, as spesifisearre, wurdt de earste alinea fan 'e branchbeskriuwingstekst brûkt as ûnderwerp fan 'e omslachbrief foar in set fan patches.
  • Implementearre stipe foar it kombinearre gebrûk fan it kommando "git apply -3way" en de ynstelling "merge.conflictStyle" ("git apply" nimt no rekken mei de styl fan konfliktbeskriuwing fan merge.conflictStyle as it nedich is om it konflikt op te lossen nei it besykjen om in patchbestân oan te passen op it repository).
  • De funksje-definysjekoade brûkt yn operaasjes lykas "git diff/grep --show-function/-function-context" is útwreide om it definiearjen fan funksjegrinzen yn taalprogramma's te stypjen Elixir.
  • In nije opsje is tafoege oan "git add", "git commit", "git reset" en oare kommando's - "-pathspec-from-file", wat it mooglik makket om in list mei paden te laden fan in bestân of ynfierstream , ynstee fan se op 'e kommandorigel te lizzen.
  • It probleem mei it opspoaren fan omnammen op it mapnivo by it skriuwen fan commits is oplost. De definysje wurke net as de ynhâld fan in submap waard ferpleatst nei de root fan it repository.
  • In earste ymplemintaasje fan it opnij ûntworpen "git add -i" kommando is foarsteld, wêrtroch jo feroare ynhâld ynteraktyf kinne tafoegje, opnij skreaun fan Perl nei C. In soartgelikense werwurking fan it kommando "git add -p" is oan 'e gong.
  • It kommando "git log -graph" is refaktorearre, it generearjen fan in ASCII-ôfbylding fan in grafyk mei de skiednis fan feroaringen yn it repository. De werynrjochting makke it mooglik om de útfier signifikant te ferbetterjen en te ferienfâldigjen sûnder de struktuer fan it ferhaal te ferdraaien, wat bygelyks it probleem oplost mei de ôfbylding dy't bûten de terminalline breedte útwreidet.
  • De opsje "git log --format=.." lit jo it útfierformaat feroarje,
    útwreide mei stipe foar de "l / L" flaggen om allinnich it diel fan it e-mailadres wer te jaan oanjûn foar it "@" symboal (bygelyks nuttich as alle ûntwikkelders alle e-mails yn itselde domein hawwe).

  • In "set-url" subkommando tafoege oan it kommando "git submodule".
  • Testkits binne bywurke as tarieding op de oergong nei
    hashing algoritme SHA-2 ynstee fan SHA-1.

Boarne: opennet.ru

Add a comment