Git 2.37 бастапқы басқару нұсқасы

Бөлінген көзді басқару жүйесінің Git 2.37 шығарылымы енгізілді. Git тармақтарды біріктіруге және біріктіруге негізделген икемді сызықты емес әзірлеу құралдарын қамтамасыз ететін ең танымал, сенімді және жоғары өнімді нұсқаларды басқару жүйелерінің бірі болып табылады. Тарихтың тұтастығын және ретроактивті өзгерістерге қарсы тұруды қамтамасыз ету үшін әрбір міндеттемеде барлық алдыңғы тарихтың жасырын хэштеу қолданылады, сонымен қатар әзірлеушілердің цифрлық қолтаңбаларымен жеке тегтер мен міндеттемелерді тексеруге болады.

Алдыңғы шығарылыммен салыстырғанда 395 әзірлеушінің қатысуымен дайындалған жаңа нұсқаға 75 өзгерту енгізілді, оның 20-сы әзірлеуге алғаш рет қатысты. Негізгі инновациялар:

  • Репозиторийдің бір бөлігін ғана қамтитын ішінара индекстер механизмі (сирек индекс) кеңінен қолдануға дайын. Ішінара индекстер өнімділікті жақсарта алады және ішінара клондау әрекеттерін орындайтын репозиторийлерде орынды үнемдей алады (сирек тексеру) немесе репозиторийдің ішінара көшірмесімен жұмыс істейді. Жаңа шығарылымда ішінара индекстерді «git show», «git sparse-checkout» және «git stash» командаларына біріктіру жұмыстары аяқталды. Ішінара индекстерді пайдаланудың ең маңызды өнімділігі кейбір жағдайларда 80% жылдамырақ болатын «git stash» пәрменінде.
  • Репозиторийде сілтеме берілмеген (тармақтар немесе тегтерге сілтеме жасалмайды) қол жетімсіз нысандарды орау үшін жаңа «cruft packs» механизмі енгізілді. Қол жетпейтін нысандарды қоқыс жинаушы алып тастайды, бірақ жарыс жағдайларын болдырмау үшін алып тастар алдында белгілі бір уақыт репозиторийде қалады. Қолжетімсіз объектілердің кезеңін қадағалау үшін оларға ұқсас объектілердің өзгеру уақыты бар белгілерді байланыстыру қажет, бұл оларды барлық объектілердің ортақ өзгерту уақыты болатын бір бума-файлда сақтауға мүмкіндік бермейді. Бұрын әрбір нысанды бөлек файлда сақтау әлі жойылуға жатпайтын көптеген жаңа, қол жетімсіз нысандар болған кезде проблемаларға әкелді. Ұсынылған «cruft packs» механизмі бір бума-файлда барлық қол жетімсіз нысандарды сақтауға және «.mtimes» кеңейтімі бар файлда сақталған бөлек кестеде әрбір нысанның өзгерту уақыты туралы деректерді көрсетуге мүмкіндік береді.
  • Windows және macOS үшін файлдық жүйедегі өзгерістерді қадағалаудың кірістірілген механизмі бар, ол «git status» сияқты операцияларды орындау кезінде бүкіл жұмыс каталогын санау қажеттілігін болдырмайды. Бұрын ілгектер арқылы өзгерістерді бақылау үшін Watchman сияқты сыртқы файлдық жүйе өзгерістерін бақылау утилиталарын қосуға болады, бірақ бұл қосымша бағдарламалар мен конфигурацияны орнатуды талап етті. Бұл функция енді ендірілген және оны "git config core.fsmonitor true" пәрменімен қосуға болады.
  • "git sparse-checkout" пәрмені ішінара клондау үшін үлгілерді анықтаудың "-cone" режиміне балама қолдауды тоқтатты, бұл репозиторийдің клондау операциясына жататын бөлігін анықтау кезінде "" көмегімен жеке файлдарды тізімдеуге мүмкіндік береді. .gitignore» синтаксисі ішінара индекстерді оңтайландыру үшін пайдалануға мүмкіндік бермейді.
  • Дискідегі өзгерістерді жою үшін fsync() шақыруын теңшеудегі жақсартылған икемділік. «Core.fsyncMethod» параметріне «пакеттік» синхрондау стратегиясына қолдау қосылды, ол бір fsync() шақыруы арқылы тазартылған кері жазу кэшіндегі өзгерістерді жинақтау арқылы жеке файлдардың үлкен санын жазғанда жұмысты жылдамдатады. git add пәрменіне 500 файл қосылған сынақ жаңа режим қосылған кезде 0.15 секундта аяқталды, ал fsync() функциясы бар әрбір файл үшін 1.88 секунд және fsync қолданбай 0.06 секунд қажет болды.
  • "git log" және "git rev-list" сияқты өтпелі пәрмендерде енді "X"-тен асқан орындаулар туралы ақпаратты сүзу үшін " --since-as-filter=X" опциясы бар. «-sіnce» опциясынан айырмашылығы, жаңа пәрмен көрсетілген уақыттан асқан бірінші тапсырмадан кейін іздеуді тоқтатпайтын сүзгі ретінде жүзеге асырылады.
  • «git remote» пәрменінде «-v» жалаушасын көрсету кезінде репозиторийдің ішінара клондары туралы ақпарат беріледі.
  • «Ескерту», ​​«өлу» және «рұқсат ету» мәндерін қабылдай алатын «transfer.credentialsInUrl» параметрі қосылды. «Қашықтан басқару пультінде көрсетілген болса. анық мәтіндегі тіркелгі деректерінің .url мекенжайы болса, "transfer.credentialsInUrl" параметрі "өлу" күйіне орнатылған болса, "алу" немесе "басу" әрекетін орындау әрекеті сәтсіз болады немесе "ескерту" күйіне орнатылған болса, ескерту.
  • Әдепкі бойынша Perl тілінен C тіліне қайта жазылған «git add -i» пәрменінің интерактивті режимінің жаңа іске асырылуы пайдаланылады.

Ақпарат көзі: opennet.ru

пікір қалдыру