Git 2.48 бөлүштүрүлгөн булакты башкаруу системасы чыгарылды. Git жогорку өндүрүмдүү жана тармакташуу жана бириктирүү негизинде сызыктуу эмес өнүктүрүү куралдарын камсыз кылат. Тарыхтын бүтүндүгүн жана ретроактивдүү өзгөрүүлөргө каршылыгын камсыз кылуу үчүн ар бир коммитте мурунку бүт тарыхтын имплициттүү хэштери, ошондой эле айрым тегдерди жана милдеттенмелерди иштеп чыгуучулардын санарип колтамгалары колдонулат. Git коду GPLv2+ лицензиясы боюнча таратылат.
Мурунку релизге салыштырмалуу жаңы версияда 605 иштеп чыгуучунун катышуусунда даярдалган 93 өзгөртүү камтылган, анын ичинен 35и иштеп чыгууга биринчи жолу катышып жатат. Негизги инновациялар:
- GNU Make жана CMakeден тышкары Meson куруу тутумун колдонуу менен куруу мүмкүнчүлүгүн ишке ашырды. Gitти куруу үчүн эми "meson setup build && ninja -C build" буйругун колдонсоңуз болот. GNU Make колдонууда колдонулган Makefile 3887 сапка чейин өсүп, биз каалагандай жөнөкөй эмес экени белгиленген. Meson'тун инструменттер топтому куруу системасын жөнөкөйлөтөт, кайчылаш-платформаларды куруу үчүн ыңгайлуу жана Make utility менен тажрыйбасы жок башталгычтар же иштеп чыгуучулар үчүн курулушту жеткиликтүү кылат. Жакынкы келечекте Make жана CMakeге колдоо көрсөтүүнү токтотуу пландары жок.
- Пакет файлдарындагы маалымат блокторунун бүтүндүгүн текшерүү үчүн колдонулган контролдук суммаларды эсептөөдө SHA-1 хэштин альтернативдик ишке ашырууларын колдонууга уруксат берүү үчүн куруу параметрлери кошулду. Контролдук сумманы эсептөөнүн аткарылышы чоң мааниге ээ, мисалы, репозиторийди Linux ядросу менен клондоодо процессордун убактысынын 78%ы сарпталат; Демейки ишке ашыруу кошумча кагылышуу текшерүүлөрүн жана SHAttered жана Shambles сыяктуу SHA-1 чабуулдарынан коргоону камтыйт. Кошумча ресурстарды талап кылган мындай коргоо SHA-1ди криптографиялык максаттарда колдонууда гана мааниси бар жана индекстик маалыматтардын бүтүндүгүн текшерүүдө пайдасыз.
Криптосистемаларга ылайыктуу эмес SHA-1ди тезирээк ишке ашыруу менен Gitти куруу үчүн *_UNSAFE варианттарынын сериясы сунушталат, мисалы, "OPENSSL_SHA1_UNSAFE". GitHubда, жөнөкөйлөштүрүлгөн SHA-1 менен куруу маалыматтарды издөө жана клондоо операцияларын 10-13% га жогорулатууга мүмкүндүк берди.
- "-remerge-diff" опциясын "диапазон-дифф" буйругуна колдонуу мүмкүнчүлүгү кошулду, бул жалпы бириктирүү натыйжасы менен "бириктирүү" буйругун иштеткенден кийин милдеттенмеде чагылдырылган чыныгы маалыматтардын ортосундагы айырмаларды көрсөтүүгө мүмкүндүк берет. "--remerge-diff" опциясын колдонууда, конфликттерди чечүүнүн ортосундагы айырмачылыктар ар бир негизги бутак үчүн бөлүнбөйт, бирок биригүү конфликттери бар файл менен чыр-чатактар чечилген файлдын ортосундагы жалпы айырмачылыктар көрсөтүлөт. diapazon-diff буйругунун контекстинде, жаңы опция --rebase-merges опциясы менен rebase буйругу менен тапшырмалардын ырааттуулугу көчүрүлгөндөн кийин милдеттенмелердин топтомун салыштыруу үчүн пайдалуу болушу мүмкүн.
- Эстутумдун агып кетүүсүн аныктоо иштетилген Git сыноо топтомун иштетүү мүмкүнчүлүгү кошулду. git чакырылган функция аткарылгандан кийин чыгуучу утилиталарды камсыз кылгандыктан, эстутумдун агып кетиши мурда чоң көйгөй катары каралчу эмес. Эс тутумдун агып кетишин толугу менен жоюу зарылчылыгы ички функцияларды узакка созулган процесстерде колдонула турган өзүнчө китепканага көчүрүү иштери башталгандан кийин актуалдуу болуп калды.
- Келечекте токтотулушу пландалып жаткан эскирген режимдердин жана функциялардын тизмеси түзүлө баштады. Git 3.0 релизинде эскирген функциялар алынып салынышы күтүлүүдө, ал артка шайкештикти бузган өзгөртүүлөрдү камтыйт.
- Репозиторийдеги шилтемелердин тизмесин көрсөткөн “git for-each-ref” буйругун оптималдаштырууну улантуу. Шилтемелерди чыпкалоо жана чыгаруу форматтоо үчүн иштеткичтерди бириктирген оптималдаштыруу азыр сорттолбогон чыгарууга гана эмес, "--сорт" опциясы көрсөтүлгөндө да колдонулат.
- Репозиторийде бутактарды жана тег шилтемелерин эффективдүү сактоо үчүн блоктордун сактагычы менен "кайталануучу" сервердин жакшыртылган ишке ашырылышы. Reftable сизге шилтемелердин абдан көп саны бар репозиторийлерде издөөнү, окууну жана жазууну тездетүүгө мүмкүндүк берет. Жаңы версия libgit китепканасын курууга көз карандылыктан арылтуу үчүн кээ бир жардамчы API'лерди чакырууну токтотот. Эстутум бөлүштүрүү функциялары тарабынан кайтарылган каталарды адаптивдик иштетүү ишке ашырылды (эстутумдун жетишсиздиги бузулууга алып келбейт). Шилтемелерди түзүү операциялары тездетилди жана эстутум керектөө кыскарды.
- Жарым-жартылай клондоштурууну ишке ашыруу "git gc" буйругун аткаргандан кийин репозиторийлердин циклин жана коррупцияны пайда кылган маселелерди чечти.
- "git fetch" буйругун аткарып жатканда " эгерде жергиликтүү системада "refs/remotes/" жок болсо /HEAD" жана HEAD шилтеме кылган бутактын башка тарабында болушу, "refs/remotes/ /HEAD" азыр бул темага багыттайт. Синхрондоштурууну башкаруу үчүн "refs/remotes/ /HEAD" мааниси менен HEAD байланыштын башка тарабында, алыскы жөндөө кошулду. .followRemoteHEAD".
- Кошулган жөндөө "алыскы. .serverOption" буйрук сабына окшош "-serverOption= "
- "git rebase --rebase-merges" буйругу бутак аттары мүмкүн болушунча энбелги катары колдонулушун камсыздайт.
- 'git notes add' жана 'git notes append' буйруктарына '-e' желекчеси кошулду, ал GIT_EDITOR чөйрө өзгөрмөсү аркылуу белгиленген тышкы текст редакторунда эскертүүнү ачат.
- GCC 15 жана C23 стандарты менен жакшыртылган шайкештик.
- libcURL жана Perl эски версияларын колдоо токтотулган.
Source: opennet.ru
