Git 2.56 bronbeheervrystelling

Git 2.56, die verspreide bronkode-bestuurstelsel, is vrygestel. Git word gelisensieer onder die GPLv2+ lisensie. In vergelyking met die vorige vrystelling, bevat die nuwe weergawe 748 veranderinge wat deur 104 ontwikkelaars voorberei is, waarvan 39 nuut is met Git-ontwikkeling. Belangrike nuwe kenmerke (1, 2, 3):

  • 'n "git add --resolved"-modus is bygevoeg vir die oplos van konflikte wanneer takke saamgevoeg word. Hierdie modus kontroleer lêers vir konflikmerkers en, indien 'n merker in ten minste een lêer bespeur word, gee 'n fout terug, indekseer geen lêers nie en vertoon 'n lys van lêers wat regstelling benodig. Anders as die "git add --update"-opdrag, verwerk hierdie nuwe modus slegs lêers in 'n konfliktoestand en ignoreer veranderde lêers wat nie verband hou met die konflik nie. Dit laat toe dat takke-samesmeltings veilig voltooi word, selfs al is daar ander onvoltooide wysigings in die werkgids (die "git add --update"-opdrag het alle voorheen opgespoorde veranderde lêers in die werkgids by die indeks gevoeg).
  • Die werk met groot bewaarplekke is aansienlik versnel deur die algoritme te optimaliseer vir die soek na die mees onlangse algemene commits wanneer takke saamgesmelt en commits vergelyk word. Die proses oorweeg nou commits wat uitsluitlik aan een tak behoort, wat die skandering toelaat om onmiddellik te stop nadat alle moontlike gemeenskaplike voorouers gevind is, sonder om tyd te mors op verdere deurbraak van die veranderingsgeskiedenis. In een getoetste bewaarplek het die soekspoed gemiddeld 20 keer toegeneem, terwyl die spoed in 'n ander 70 keer bereik is. Wanneer die opdrag "git merge-base --all v4.8 v4.9" in die bewaarplek met die kern uitgevoer word. Linux Die aantal deurkruisingsstappe het van 167 duisend tot 3.8 duisend afgeneem.
  • Die "--path-walk" herverpakkingsmodus is aangepas vir bedienergebruik, wat die skep van meer kompakte paklêers moontlik maak deur objekte volgens hul pad in die gidsboom te groepeer (byvoorbeeld, vir die Fluent UI-bewaarplek, het die gebruik van "--path-walk" die paklêergrootte van 558 MB tot 164 MB verminder). Die nuwe weergawe ondersteun die gebruik van die "--path-walk"-modus in samewerking met bereikbaarheidsbitkaarte en delta-eilande, wat deur Git-gasheerdienste gebruik word om werk te bespoedig en vurke van die hoofbewaarplek te isoleer.
  • Knelpunte wat oorbodige berekeninge in groot bewaarplekke veroorsaak het, is uitgeskakel: onnodige lêerstatuskontroles wanneer na die hersientafel geskryf word, is verwyder; herskandering van die lys is uitgeskakel vir elke nuwe paklêer-invoeging; hersientafel-bewerkings met opgehoopte groot verwyderingsrekords is versnel; git diff-werkverrigting is geoptimaliseer wanneer lêerpadbeperkings gespesifiseer word. Na hierdie optimaliserings is hersientafel-bewerkings met 'n groot aantal verwyderings met 65 keer versnel (van 13 sekondes tot 0.2 sekondes), en die problematiese git diff-opdrag in 'n Chromium-bewaarplek met 500 000 items in die indeks neem nou 0.07 sekondes in plaas van 8 minute.
  • Die eksperimentele "git history"-opdrag, wat die vermoë bied om die geskiedenis van veranderinge te herskryf, is opgedateer om 'n "git history drop"-bewerking in te sluit vir die verwydering van die gekose commit en die outomatiese koppeling van sy afstammelinge aan die ouer commit.
  • Die "git branch --delete-merged 'origin/*' 'topic-*'"-opdrag is bygevoeg om groepe plaaslike takke waarvan die veranderinge reeds aan 'n eksterne bewaarplek toegeken is, veilig te verwyder. Wildcards kan gebruik word om takke en bewaarplekke te filter. Die "--dry-run"-vlag kan gebruik word om kandidate vir verwydering te analiseer sonder om die bewerking eintlik uit te voer.
  • Die "git refs create|update|delete|rename"-opdrag is bygevoeg, wat laevlak-bewerkings kombineer vir die skep, verwydering, hernoeming en opdatering van verwysings.
  • Die "git bisect run"-opdrag het nou die "--reset-when-found=[ opsie ]", wat die bewaarplek outomaties terugbring na die toestand voordat die soektog begin het, of die problematiese commit aktief laat, sonder om die "git bisect reset"-opdrag afsonderlik uit te voer.
  • Die 'git replay'-opdrag het nou 'n '--linearize'-vlag om 'n plat saamsmelttopologie te gebruik, soortgelyk aan 'git rebase --no-rebase-merges', maar sonder om toegang tot die werkboom te verkry.
  • Die "git log --follow"-opdrag hou nou lêerhernoemings in nie-lineêre toewysingsgeskiedenisse dop, soos wanneer subtakke saamgesmelt word. Die lêerpad word nou afsonderlik vir elke ouertoewysing aangeteken, wat die resultaat onafhanklik maak van die volgorde waarin die toewysingsgeskiedenis deurgegaan word.
  • Die vermoë is bygevoeg om die "git repack -a --filter=blob:limit=1m --drop-filtered"-opdrag te gebruik om groot blobs wat op aanvraag van 'n eksterne bewaarplek afgelaai is en nie in die huidige indeks gebruik word nie, te verwyder. Hierdie objekte sal outomaties weer afgelaai word wanneer dit in die toekoms verkry word.
  • Die "git log --graph"-opdrag vir grafieke met veelvuldige onafhanklike wortels voeg nou inkeping by om duidelik afsonderlike onverwante commits te skei.
  • Algemene tikfoute, soos om "git push origin/main" in plaas van "git push origin main" of "git branch --set-upstream-to origin main" in plaas van "git branch --set-upstream-to=origin/main" te spesifiseer, word nou opgespoor en 'n wenk word vertoon oor hoe om die korrekte variant te gebruik.

Bron: opennet.ru

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster