Release fan Git 2.35 boarne kontrôle systeem

Nei twa moannen fan ûntwikkeling is it ferspraat boarnekontrôlesysteem Git 2.35 frijlitten. 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 feroarings te garandearjen, wurdt ymplisyt hashing fan' e heule foarige skiednis brûkt yn elke commit; it is ek mooglik om yndividuele tags te sertifisearje en commits mei digitale hantekeningen fan 'e ûntwikkelders.

Yn ferliking mei de foarige release omfette de nije ferzje 494 feroarings, taret mei de dielname fan 93 ûntwikkelders, wêrfan 35 foar it earst meidien oan ûntwikkeling. Wichtichste ynnovaasjes:

  • De mooglikheden foar it brûken fan SSH-kaaien om Git-objekten digitaal te ûndertekenjen binne útwreide. Om de jildigensperioade fan ferskate kaaien te beheinen, is stipe foar de OpenSSH-rjochtlinen "jildich-foar" en "jildich-nei" tafoege, wêrmei jo korrekt wurk mei hantekeningen soargje kinne nei't de kaai troch ien fan 'e ûntwikkelders rotearre is. Dêrfoar wie d'r in probleem mei de skieding fan hantekeningen troch de âlde en nije kaai - as jo de âlde kaai wiskje, sil it ûnmooglik wêze om de hantekeningen te ferifiearjen dy't dermei makke binne, en as jo it ferlitte, dan sil it mooglik bliuwe meitsje nije hantekeningen mei de âlde kaai, dy't al ferfongen is troch in oare kaai. Mei jildich-foar en jildich-na kinne jo de omfang fan 'e kaaien skiede op basis fan 'e tiid dat de hântekening makke is.
  • Yn de merge.conflictStyle ynstelling, wêrmei jo de modus te selektearjen foar it werjaan fan ynformaasje oer konflikten by in fúzje, is stipe foar de "zdiff3" modus ferskynd, dy't alle standert rigels oanjûn oan it begjin of ein fan it konflikt bûten it konflikt ferpleatst gebiet, dat soarget foar in kompakter presintaasje fan ynformaasje.
  • De "--staged" modus is tafoege oan it kommando "git stash", wêrtroch jo allinich wizigingen kinne ferbergje dy't oan 'e yndeks tafoege binne, bygelyks yn in situaasje wêryn't jo guon fan 'e komplekse feroarings tydlik moatte útstelle om earst tafoegje wat al klear is en nei in skoft mei de rest ôfhannelje. De modus is fergelykber mei it kommando "git commit", skriuwt allinich de wizigingen pleatst yn 'e yndeks, mar ynstee fan in nije commit te meitsjen yn "git stash —staged", wurdt it resultaat opslein yn it tydlike gebiet fan stash. As de wizigingen ienris nedich binne, kinne se weromdraaid wurde mei it kommando "git stash pop".
  • In nije opmaakspesifisator is tafoege oan it kommando "git log", "--format=%(beskriuwe)", wêrtroch jo de útfier fan "git log" kinne kombinearje mei de útfier fan it kommando "git describe". De parameters foar "git describe" wurde direkt yn 'e spesifikaasje spesifisearre ("-format=%(beskriuwe: match= ,útslute= )")), wêryn jo ek ferkoarte tags opnimme kinne ("—format=%(beskriuwe: tags= )") en konfigurearje it oantal heksadesimale tekens om objekten te identifisearjen ("—format=%(beskriuwe:abbrev= )"). Bygelyks, om de lêste 8 commits te listjen wêrfan de tags gjin frijlittingskandidaat-tag hawwe, en identifiers fan 8-karakters oantsjutte, kinne jo it kommando brûke: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643.bg-2.abg. b95bd94 bbc056f2.34.1 v642-56-gffb95f8d v7-2.34.1- gdf203c9adeb2980902 v2.34.1-640-g3b41a212
  • De ynstelling user.signingKey stipet no nije soarten kaaien dy't net beheind binne ta it type "ssh-" en it opjaan fan it folsleine triempaad nei de kaai. Alternative typen wurde oantsjutte mei it foarheaksel "key::", bygelyks "key :: ecdsa-sha2-nistp256" foar ECDSA-kaaien.
  • De snelheid fan it generearjen fan in list mei wizigingen yn 'e "-histogram"-modus, lykas by it brûken fan de "-color-moved-ws" opsje, dy't de markearring fan spaasjes yn in kleurferskil kontrolearret, is merkber ferhege.
  • It kommando "git jump", brûkt om Vim ynformaasje te jaan oer de krekte sprong nei de winske posysje yn in bestân by it parsearjen fan fúzjekonflikten, it besjen fan ferskillen, of it útfieren fan in sykaksje, jout de mooglikheid om de dekke fúzjekonflikten te beheinen. Om bygelyks operaasjes allinich te beheinen ta de "foo"-map, kinne jo "git jump merge - foo" opjaan, en om de "Documentation"-map út te sluten fan ferwurking - "git jump merge - ':^Documentation'"
  • Der is wurk dien om it gebrûk fan it type "size_t" te standerdisearjen ynstee fan "unsigned long" foar wearden dy't de grutte fan objekten fertsjintwurdigje, wat it mooglik makke om "skjinne" en "smudge" filters te brûken mei bestannen grutter dan 4 GB op alle platfoarms, ynklusyf platfoarms mei de LLP64 gegevens model, it type "unsigned lang" wêryn is beheind ta 4 bytes.
  • De opsje "-empty=(stop|drop|keep)" is tafoege oan it kommando "git am", wêrtroch jo it gedrach kinne selektearje foar lege berjochten dy't gjin patches befetsje by it parsearjen fan patches út 'e postfak. De wearde "stop" sil de folsleine patchoperaasje beëinigje, "drop" sil in lege patch oerslaan, en "keep" sil in lege commit meitsje.
  • Stipe tafoege foar parsjele yndeksen (sparse yndeks) oan de kommando's "git reset", "git diff", "git blame", "git fetch", "git pull" en "git ls-files" om prestaasjes te ferbetterjen en romte te besparjen yn repositories , dêr't part cloning operaasjes (sparse-checkout) wurde útfierd.
  • It kommando "git sparse-checkout init" is ôfret en moat ferfongen wurde troch "git sparse-checkout set".
  • Inisjele ymplemintaasje tafoege fan in nije "reftable" backend foar it opslaan fan referinsjes lykas tûken en tags yn it repository. De nije backend brûkt blokopslach brûkt troch it JGit-projekt en is optimalisearre foar it bewarjen fan heul grutte oantallen referinsjes. De backend is noch net yntegrearre mei it refs-systeem en is net klear foar praktysk gebrûk.
  • It kleurpalet fan it kommando "git grep" is oanpast om te passen by it GNU grep-hulpprogramma.

Boarne: opennet.ru

Add a comment