Release fan it ferspraat boarnekontrôlesysteem Git 2.31

It ferdielde boarnekontrôlesysteem Git 2.31 is no beskikber. Git is ien fan 'e populêrste, betroubere en heechprestearjende ferzjekontrôlesystemen, en leveret fleksibele net-lineêre ûntwikkelingsark basearre op fertakking en gearfoeging. Om de yntegriteit fan 'e skiednis en ferset tsjin retroaktive feroaringen te garandearjen, wurdt ymplisite hashing fan' e hiele foarige skiednis brûkt yn elke commit is it ek mooglik om yndividuele tags en commits te sertifisearje mei digitale hantekeningen fan 'e ûntwikkelders.

Yn ferliking mei de foarige release omfette de nije ferzje 679 wizigingen, taret mei de dielname fan 85 ûntwikkelders, wêrfan 23 foar it earst meidien oan ûntwikkeling. Wichtichste ynnovaasjes:

  • It kommando "git ûnderhâld" tafoege, wêrtroch jo periodyk wurk kinne útfiere op systemen dy't gjin cron stypje. Bygelyks, mei in nij kommando kinne jo regelje dat it ferpakkingsproses fan 'e repository periodyk rint, sadat jo net hoege te wachtsjen oant it repository is beskoattele as ferpakking automatysk wurdt útfierd by it útfieren fan ferskate kommando's. It kommando "git ûnderhâld" lit jo optimisaasjes en operaasjes útfiere om de optimale struktuer fan 'e repository op' e eftergrûn te behâlden, sûnder de ynteraktive sesje te blokkearjen - ien kear yn 'e oere wurdt wurk dien om proaktyf nije objekten te downloaden fan in repository op ôfstân en it bywurkjen fan de bestân mei de commit-grafyk, en it proses fan it ynpakken fan it repository begjint elke nacht.
  • Stipe tafoege foar it behâld fan in omkearde yndeks (revindex) op skiif foar pakbestannen. Tink derom dat Git alle gegevens opslacht yn 'e foarm fan objekten, dy't yn aparte bestannen lizze. Om de effisjinsje fan it wurkjen mei de repository te fergrutsjen, wurde objekten ek pleatst yn pakketbestannen, wêryn ynformaasje wurdt presintearre yn 'e foarm fan in stream fan objekten dy't inoar folgje (in ferlykber formaat wurdt brûkt by it oerdragen fan objekten mei de git fetch en git push opdrachten). Foar eltse pack triem wurdt makke in yndeks triem (.idx), dat kinne jo hiel fluch bepale de offset yn de pack triem dêr't de opjûne foarwerp wurdt opslein mei help fan de foarwerp identifier. Yntrodusearre yn Git 2.31, is de omkearde yndeks (.rev) rjochte op it optimalisearjen fan it proses fan it bepalen fan in objektidentifikator út ynformaasje oer it pleatsen fan in objekt yn in pakbestân.

    Eartiids, sa'n konverzje waard útfierd op 'e fly wylst parsing de pack triem en waard opslein allinnich yn it ûnthâld, dy't net tastean ferlykbere yndeksen wurde opnij brûkt en twongen de yndeks wurde generearre eltse kear. De wurking fan it bouwen fan in yndeks komt del op it konstruearjen fan in array fan objekt-posysje-pearen en sortearje it op posysje, wat in lange tiid kin duorje foar grutte pakketbestannen.

    Bygelyks, in operaasje foar it werjaan fan de ynhâld fan objekten, dy't in direkte yndeks brûkt, wie 62 kear flugger as in operaasje om de grutte fan objekten wer te jaan, wêrfoar de posysje-nei-objektgegevens net yndeksearre waarden. Nei it brûken fan de omkearde yndeks, dizze operaasjes begûn te nimmen likernôch deselde tiid. Omkearde yndeksen kinne jo ek ferstjoeren fan objekten fersnelle by it útfieren fan fetch- en push-kommando's troch direkt oerdracht fan klearmakke gegevens fan skiif. Standert wurde omkearde yndeksen net oanmakke om se te generearjen, moatte jo de ynstelling "git config pack.writeReverseIndex true" ynskeakelje en dan it repository ynpakke mei it kommando "git repack -Ad".

  • Tafoegde prestaasjesoptimalisaasjes basearre op it uterlik yn it commit-grafykbestânformaat, brûkt om tagong te optimalisearjen ta ynformaasje oer commits, nije gegevens oer it commit-generaasjenûmer, dat kin wurde brûkt om ekstra operaasjes te rapperjen mei commits.
  • Opsjes tafoege foar it opnij definiearjen fan de namme fan 'e haadtûke dy't standert brûkt wurdt yn nije repositories (init.defaultBranch-ynstelling). By tagong ta eksterne repositories, besiket git de tûke te kontrolearjen dy't troch HEAD oanwiisd is, d.w.s. as de eksterne tsjinner standert de "haad" branch brûkt, dan sil de "git clone" operaasje besykje "main" lokaal út te checken. Git 2.31 stipet no dit type kassa foar lege repositories. Bygelyks, by it klonen fan in nije repository lokaal foardat de earste patches deroan taheakje, sil de lokale kopy no de standert upstream namme befetsje dy't ynsteld is op 'e eksterne tsjinner.
  • In --disk-gebrûk-opsje tafoege oan it kommando "git rev-list" om in gearfetting fan 'e grutte fan objekten te jaan.
  • Yn ôfwachting fan 'e kommende feroaring oan' e fúzje-backend, is deteksje omneame signifikant optimalisearre.
  • Stipe foar de legacy PCRE1 reguliere ekspresjebibleteek is stopset.
  • It is mooglik om it gebrûk fan ferkoarte keppelings krêftich te ferbieden, nettsjinsteande it hashing-algoritme. It ferbod is ynskeakele troch it tawizen fan de wearde "nee" oan de core.abbrev parameter.
  • Added "--path-format=(absolute|relative)" opsje oan it kommando "git rev-parse" om eksplisyt oan te jaan oft relative of absolute paden moatte wurde útfierd.
  • Bash-foltôgingsskripts meitsje it maklik om foltôgingsregels ta te foegjen foar jo eigen "git" subkommando's.
  • In --stdin-opsje tafoege oan it kommando "git bundle" om referinsjes te lêzen fan 'e standert ynfierstream.
  • In nije opsje is tafoege oan it kommando "git log": "--diff-merges=" "
  • Tafoege "--deduplicatecan" opsje oan "git ls-files" kommando om dûbele útfier te eliminearjen.
  • Nije maskers tafoege om in berik fan commits út te sluten - " ^!" en " ^- "
  • Tafoege "--left-only" en "--right-only" opsjes oan it kommando "git range-diff" om mar ien kant fan it berik te sjen dat fergelike wurdt.
  • --skip-to= opsjes tafoege oan de kommando's "git diff" en "git log". " en "—rotate-to= » om oer te slaan of nei it ein fan de startpaden te gean.
  • Tafoege "--skip-to=" opsje ta "git difftool" kommando " om in ûnderbrutsen sesje te hervatten fan in willekeurich paad.
  • De Gedrachskoade, dy't de basisprinsipes definiearret foar it oplossen fan konfliktsituaasjes tusken ûntwikkelders, is bywurke nei ferzje 2.0 (foarhinne ferzje 1.4 waard brûkt).

    Boarne: opennet.ru

Add a comment