Git 2.56 булакты башкаруу релиз

Git 2.56, таратылган булак коддорун башкаруу системасы, чыгарылды. Git GPLv2+ лицензиясы боюнча лицензияланган. Мурунку чыгарылышка салыштырмалуу, жаңы версияда 104 иштеп чыгуучу тарабынан даярдалган 748 өзгөртүү камтылган, алардын 39у Git иштеп чыгууда жаңы. Негизги жаңы функциялар (1, 2, 3):

  • Бутактарды бириктирүүдө карама-каршылыктарды чечүү үчүн "git add --resolved" режими кошулду. Бул режим файлдарды карама-каршылык белгилеринин бар-жогун текшерет жана эгерде маркер жок дегенде бир файлда табылса, ката кайтарат, эч кандай файлдарды индекстебейт жана оңдоону талап кылган файлдардын тизмесин көрсөтөт. "git add --update" буйругунан айырмаланып, бул жаңы режим карама-каршылык абалындагы файлдарды гана иштетет жана карама-каршылыкка байланышы жок өзгөртүлгөн файлдарды этибарга албайт. Бул жумушчу каталогдо башка бүтпөгөн түзөтүүлөр болсо да, бутактарды бириктирүүнү коопсуз аяктоого мүмкүндүк берет ("git add --update" буйругу жумушчу каталогдогу мурда байкалган бардык өзгөртүлгөн файлдарды индекске кошту).
  • Бутактарды бириктирүүдө жана коммиттерди салыштырууда эң акыркы кеңири таралган коммиттерди издөө алгоритмин оптималдаштыруу менен чоң репозиторийлер менен иштөө бир топ тездетилди. Эми процесс бир гана бутактын өзүнө гана тиешелүү коммиттерди карайт, бул бардык мүмкүн болгон жалпы ата-бабаларын тапкандан кийин сканерлөөнү дароо токтотууга мүмкүндүк берет, өзгөрүүлөр тарыхын андан ары карап чыгууга убакыт коротпойт. Бир текшерилген репозиторийде издөө ылдамдыгы орточо эсеп менен 20 эсеге жогорулады, ал эми башкасында ылдамдык 70 эсеге жетти. "git merge-base --all v4.8 v4.9" буйругун ядро ​​менен репозиторийде иштеткенде Linux Өтүү кадамдарынын саны 167 миңден 3.8 миңге чейин азайган.
  • "--path-walk" кайра таңгактоо режими серверде колдонууга ылайыкташтырылган, бул каталог дарагындагы объектилерди алардын жолу боюнча топтоштуруу менен компакттуураак пакет файлдарын түзүүгө мүмкүндүк берет (мисалы, Fluent UI репозиторийи үчүн "--path-walk" функциясын колдонуу пакет файлынын өлчөмүн 558 МБдан 164 МБга чейин кыскарткан). Жаңы версия Git хостинг кызматтары тарабынан ишти тездетүү жана форкторду негизги репозиторийден бөлүп алуу үчүн колдонулган жеткиликтүүлүк битмаптары жана дельта аралдары менен бирге "--path-walk" режимин колдонууну колдойт.
  • Чоң репозиторийлерде ашыкча эсептөөлөрдү пайда кылган тоскоолдуктар жоюлду: кайра жүктөлүүчү файлга жазууда файлдын абалын текшерүүнүн кажети жок болду; ар бир жаңы пакет файлы киргизилгенде тизмени кайра сканерлөө жоюлду; топтолгон чоң жок кылуу жазуулары менен кайра жүктөлүүчү операциялар тездетилди; файл жолунун чектөөлөрүн көрсөтүүдө git diff иштеши оптималдаштырылды. Бул оптималдаштыруулардан кийин, көп сандаган жок кылуулар менен кайра жүктөлүүчү операциялар 65 эсеге (13 секунддан 0.2 секундга чейин) тездетилди жана индексте 500 000 элементи бар Chromium репозиторийиндеги көйгөйлүү git diff буйругу эми 8 мүнөттүн ордуна 0.07 секундду талап кылат.
  • Өзгөрүүлөрдүн тарыхын кайра жазуу мүмкүнчүлүгүн берген эксперименталдык "git history" буйругу тандалган коммитти алып салып, анын тукумдарын ата-энелик коммитке автоматтык түрдө тиркеген "git history drop" операциясы менен жаңыртылды.
  • Өзгөртүүлөр тышкы репозиторийге мурунтан эле бекитилген жергиликтүү бутактардын топторун коопсуз жок кылуу үчүн "git branch --delete-merged 'origin/*' 'topic-*'" буйругу кошулду. Бутактарды жана репозиторийлерди чыпкалоо үчүн Wildcards колдонулушу мүмкүн. "--dry-run" желеги операцияны иш жүзүндө аткарбастан жок кылууга талапкерлерди талдоо үчүн колдонулушу мүмкүн.
  • Шилтемелерди түзүү, жок кылуу, аталышын өзгөртүү жана жаңыртуу үчүн төмөнкү деңгээлдеги операцияларды айкалыштырган "git refs create|update|delete|rename" буйругу кошулду.
  • "git bisect run" буйругунда эми "--reset-when-found=[ параметри бар ]", ал издөө башталганга чейинки абалга репозиторийин автоматтык түрдө кайтарат же "git bisect reset" буйругун өзүнчө иштетпестен, көйгөйлүү коммитти активдүү калтырат.
  • 'git replay' буйругунда эми 'git rebase --no-rebase-merges' сыяктуу жалпак бириктирүү топологиясын колдонуу үчүн '--linearize' желеги бар, бирок ал жумушчу даракка кирбейт.
  • "git log --follow" буйругу эми сызыктуу эмес коммит тарыхтарындагы файлдардын аттарын көзөмөлдөйт, мисалы, суббутакчаларды бириктирүү учурунда. Файлдын жолу эми ар бир ата-энелик коммит үчүн өзүнчө жазылат, бул натыйжаны коммит тарыхынын өтүү тартибинен көз карандысыз кылат.
  • Учурдагы индексте колдонулбаган тышкы репозиторийден суроо-талап боюнча жүктөлүп алынган чоң блокторду алып салуу үчүн "git repack -a --filter=blob:limit=1m --drop-filtered" буйругун колдонуу мүмкүнчүлүгү кошулду. Бул объекттерге келечекте кирүү учурунда автоматтык түрдө кайра жүктөлүп алынат.
  • Бир нече көз карандысыз тамырлары бар графиктер үчүн "git log --graph" буйругу эми байланышпаган коммиттерди так бөлүү үчүн чегинди кошот.
  • "git push origin main" ордуна "git push origin/main" же "git branch --set-upstream-to=origin/main" ордуна "git branch --set-upstream-to origin main" көрсөтүү сыяктуу кеңири таралган каталар аныкталды жана туура вариантты кантип колдонуу керектиги боюнча ишарат көрсөтүлдү.

Source: opennet.ru

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster