Git 2.24 таратылған көзді басқару жүйесінің шығарылымы

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

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

  • Конфигурация макростарына қолдау қосылды, ол арқылы олармен байланысты арнайы опциялар туралы егжей-тегжейлі ақпарат бермей-ақ әртүрлі параметрлер жиынтығы арасында жылдам ауысуға болады. Макростардың көмегімен осы немесе басқа функцияларды белсендіру үшін қандай параметрлерді өзгерту қажет екенін есте сақтаудың қажеті жоқ. Мысалы, үлкен репозиторий баяу болса, жаңа индекстеу механизміне ауысқыңыз келуі мүмкін, жол префиксін сығуды қосыңыз және index.version параметрін 4-ке орнату және core.untrackedCache мүмкіндігін қосу арқылы бақыланбайтын файл кэшін қосыңыз. Макростар құжаттамада дұрыс шешімді іздеуге уақытты жоғалтпауға, бірақ файлдардың үлкен саны бар репозиторийлерді оңтайландыру арқылы параметрлерді дереу белсендіруге мүмкіндік береді:

    git config feature.manyFiles true

  • Әдепкі бойынша қосылған – тапсыру графигі (commit-graph) түріндегі объектілерді сақтау, онда индекстеу үшін басқа нысандарға сілтемелері бар нысандар хэштерінің сызықтық тізімі емес, график түріндегі құрылым пайдаланылады. . Егер бұрын белгілі бір түзетуді қамтитын шығарылымдарды анықтау үшін сілтемелерді іздеу үшін әрбір нысанды дискіден жүктеу қажет болса, онда график түрінде сақталған кезде барлық қажетті сілтемелерді дереу анықтауға болады. Linux ядросында және Git репозиторийлерінде орындау графигі түріндегі сақтауға ауысу филиалдармен операциялардың өнімділігін екі есеге жуық арттыруға мүмкіндік берді. Git 2.24 нұсқасына жаңартқаннан кейін жаңа сақтау әдісін қосу үшін «git gc» пәрменін орындау керек.

    Commit-graph-қа қатысты өзгерістердің ішінде біз сондай-ақ commit-graph-қа қатысты командалардағы операцияның орындалу көрсеткішін («git commit-graph write», «git commit-graph verify» және т.б.) енгізу енгізілгенін атап өтеміз. басқа командалармен ортақ пішінге. .). Прогресс индикаторы енді әдепкі бойынша терминал үшін ғана көрсетіледі (тәртіпті өзгерту үшін "-[no-]прогресс" опциясын пайдаланыңыз). Бұған қоса, fetch.writeCommitGraph жаңа конфигурация параметрі қосылды, ол «git fetch» ​​операциялары кезінде файлды орындау графигі бар автоматты түрде жаңартуға мүмкіндік береді (сыртқы репозиторийлерден алынған барлық міндеттемелер дереу орындау графигіне қажетсіз өтеді) auto-gc бөлек іске қосыңыз);

  • Өзгерістер тарихын қайта жазу пәрмені қосылды - «git filter-repo«, бұл пәрменге қарапайым балама»git сүзгі тармағы» репозиторийдегі өзгерістер тарихы бойынша операцияларды орындау үшін (мысалы, репозиторийден файлды жою немесе нақты каталогтағы өзгерістер тарихын шығарып алу). Тиімділікті арттыру үшін, реттелген тапсырма бойынша талдаудың орнына, git filter-repo үздіксіз ағын түрінде тарих көрсетілімінде әрекеттерді орындайды.

    Тарихты сүзгілеу «-path-{glob,regex}» опциясы арқылы жүзеге асырылады, ол қарапайым маскаларды да, тұрақты өрнектерді де пайдалануға мүмкіндік береді. Сондай-ақ іздеуді орындау және көрсетілген өлшемнен үлкен екілік нысандарды ауыстыру немесе тазалау опциялары бар. Әрбір қайта жазылған міндеттеме жаңа SHA-1 хэш идентификаторымен қамтамасыз етіледі және ауыстырылған міндеттемеге барлық сілтемелер жаңа идентификаторға сәйкес жаңартылады.

    Репозиторий туралы статистиканың қысқаша мазмұнын көрсету үшін (түрлері бойынша нысандардың саны, ең үлкен файлдар мен каталогтар, қандай кеңейтімдер дискілік кеңістікті қажет етеді және т.б.) «-analyze» опциясы ұсынылады. Функционалдылықты кеңейту үшін Python тілінде ерікті кері шақыру өңдегіштерін қосуға болады, ол арқылы жаңа ішкі командаларды жасауға және әртүрлі оқиғаларды өңдеуге болады (мысалы, жаңа файл түрлері);

  • Параметрлерді сілтеме атауларынан бөлу үшін "--end-of-options" опциясы қосылды, олар "-" таңбасынан басталып, опциялар ретінде қарастырылады ("git log --end-of-options -super-dangerous-option" ). Егер күнделікті өмірде мұндай атауларды «git log 'refs/heads/—супер-қауіпті-опция'» ретінде алып тастауға болатын болса, онда сценарийлерде аттар кеңістігін анықтауда қиындықтар болуы мүмкін. Жалпы қабылданған " - " бөлгіші бұл жағдайда қолданылмайды, себебі ол файлдардан сілтеме атауларын бөлу үшін бұрыннан қолданылған (мысалы, “git log —end-of-options —super-dangerous-option ^master — path/to) /файл»);
  • Таңдау үшін "git rebase --rebase-merges" параметріне "--strategy" және "--strategy-option" опциялары қосылды. біріктіру стратегиялары;
  • Жаңа ".git/hooks/pre-merge-commit" өңдегіші қосылды, ол біріктіру аяқталғаннан кейін, бірақ нәтиже жазбасы жазылмай тұрып шақырылады;
  • Арнайы пәрмендердің параметрлеріне қатысты конфигурация айнымалыларын аяқтауға қолдау пәрменді аяқтау механизміне қосылды.
    Мысалы, «git -c core.autocrlf=false add path/to/my/file» деп теру қажет болса, бірақ «core.autocrlf» айнымалысының нақты атауы есіңізде болмаса, Tab пернесін басып, алуыңызға болады. кеңес.

Сонымен қатар, Git әзірлеушілері қосылды қақтығысты жағдайларды шешудің негізгі принциптерін анықтайтын жобаға қатысушының мінез-құлық кодексі. Құжат ұсыныстарға негізделген»Contributor Covenant", Linux ядросы, Eclipse, Freedesktop, GitLab, Ruby және Kubernetes сияқты көптеген ашық бастапқы жобаларда қолданылады. Құжат дүниетанымына, жасына, жынысына, діни бейімділігіне, білім деңгейіне, әлеуметтік жағдайына және ұлтына қарамастан барлық қатысушылар үшін тең мүмкіндіктерді белгілейді. Қоғамдастық қарым-қатынастың достық түрін, түсіністікті, басқа қатысушылардың проблемаларына эмпатияны, сындарлы сынды қабылдауды және бүкіл қауымдастық үшін ең жақсы шешімдерді қабылдауды құптайды. Троллингке, қорлайтын қарым-қатынасқа, қорлау әрекеттеріне, қудалауға, құпиялылықты бұзуға, жеке ақпаратты ашуға және кәсіби қарым-қатынас үшін орынсыз деп саналатын басқа әрекеттерге жол берілмейді.

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

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