Git 2.26 бөлүштүрүлгөн булакты башкаруу системасынын чыгарылышы

Жеткиликтүү бөлүштүрүлгөн булак башкаруу системасын чыгаруу git 2.26.0. Git эң популярдуу, ишенимдүү жана жогорку өндүрүмдүү версияларды башкаруу системаларынын бири, тармакташтырууга жана бириктирүүгө негизделген ийкемдүү сызыктуу эмес өнүгүү куралдарын камсыз кылат. Тарыхтын бүтүндүгүн жана ретроактивдүү өзгөрүүлөргө туруштук берүүсүн камсыз кылуу үчүн ар бир милдеттенмеде мурунку бүт тарыхтын имплициттүү хэштери колдонулат, ошондой эле иштеп чыгуучулардын санарип колтамгалары менен айрым тегдерди жана милдеттенмелерди тастыктаса болот.

Мурунку релизге салыштырмалуу жаңы версияда 504 өзгөртүү камтылган, 64 иштеп чыгуучунун катышуусу менен даярдалган, анын ичинен 12и биринчи жолу иштеп чыгууга катышкан. негизги инновациялар:

  • Демейкиге которулду экинчи версия Git байланыш протоколу, кардар Git серверине алыстан кошулганда колдонулат. Протоколдун экинчи версиясы кардарга шилтемелердин кыскартылган тизмесин кайтарып, сервер тарабында бутактарды жана тегдерди чыпкалоо мүмкүнчүлүгүн камсыз кылуу менен өзгөчөлөнөт. Мурда ар кандай тартуу буйругу кардарга бүт репозиторийдеги шилтемелердин толук тизмесин ар дайым жөнөтүп турчу, ал тургай, кардар бир филиалды гана жаңыртып жатканда же репозиторийдин көчүрмөсү жаңыртылганын текшерип жатканда. Дагы бир көрүнүктүү инновация - инструменттер топтомунда жаңы функциялар жеткиликтүү болгондон кийин протоколго жаңы мүмкүнчүлүктөрдү кошуу мүмкүнчүлүгү. Кардар коду эски протоколго шайкеш бойдон кала берет жана жаңы жана эски серверлер менен иштөөнү уланта алат, эгер сервер экинчисин колдобосо, автоматтык түрдө биринчи версияга кайра түшөт.
  • "-show-scope" опциясы "git config" буйругуна кошулуп, белгилүү бир орнотуулар аныкталган жерди аныктоону жеңилдетет. Git ар кандай жерлерде орнотууларды аныктоого мүмкүндүк берет: репозиторийде (.git/info/config), колдонуучу каталогунда (~/.gitconfig), жалпы тутумдук конфигурация файлында (/etc/gitconfig) жана буйрук аркылуу сызык параметрлери жана чөйрө өзгөрмөлөрү. "git config" аткарууда каалаган жөндөө так кайда аныкталганын түшүнүү кыйын. Бул көйгөйдү чечүү үчүн "--show-origin" опциясы бар болчу, бирок ал жөндөө аныкталган файлга жолду гана көрсөтөт, бул файлды түзөткүңүз келсе, пайдалуу, бирок "--система", "--глобалдык" же "-local" опцияларын колдонуу менен "git config" аркылуу маанини өзгөртүү керек. "--show-scope" жаңы варианты өзгөрмөнүн аныктамасынын контекстин көрсөтөт жана -show-origin менен бирге колдонулушу мүмкүн:

    $ git --list --show-scope --show-origin
    глобалдык файл:/home/user/.gitconfig diff.interhunkcontext=1
    глобалдык файл:/home/user/.gitconfig push.default=current
    […] local file:.git/config branch.master.remote=origin
    жергиликтүү файл:.git/config branch.master.merge=refs/heads/master

    $git config --show-scope --get-regexp 'айырма.*'
    глобалдык diff.statgraphwidth 35
    жергиликтүү айырма.түстүү түздүк

    $git config --глобалдык --unset diff.statgraphwidth

  • Байланыш орнотууларында ишеним грамоталары URL даректеринде маскаларды колдонууга уруксат берилет. Git'теги бардык HTTP орнотуулары жана эсептик дайындары бардык туташуулар үчүн да (http.extraHeader, credential.helper) жана URL негизиндеги туташуулар үчүн да орнотулушу мүмкүн (credential.https://example.com.helper, credential.https: //example. com.helper). Буга чейин, *.example.com сыяктуу коймочкаларга HTTP жөндөөлөрү үчүн гана уруксат берилген, бирок эсептик дайындарды байлоо үчүн колдоого алынган эмес. Git 2.26да бул айырмачылыктар жок кылынган жана, мисалы, колдонуучунун атын бардык субдомендерге байлоо үчүн сиз азыр көрсөтсөңүз болот:

    [каттоо маалыматы "https://*.example.com"]

    колдонуучунун аты = ttaylorr

  • Жарым-жартылай клондоштурууну (жарым-жартылай клондорду) эксперименталдык колдоону кеңейтүү уланууда, бул маалыматтын бир бөлүгүн гана өткөрүп берүүгө жана репозиторийдин толук эмес көчүрмөсү менен иштөөгө мүмкүндүк берет. Жаңы релиз "git sparse-checkout add" жаңы буйругун кошот, ал "git sparse-checkout add" деген жаңы буйрукту кошот, ал "git sparse-checkout add" буйругу менен бардык каталогдорду бир эле учурда тизмектеп койбостон, "текшерүү" операциясын жумушчу дарактын бир бөлүгүнө гана колдонуу үчүн жеке каталогдорду кошууга мүмкүндүк берет. sparse-checkout set" (сиз тизмени ар бир жолу кайра көрсөтпөстөн, бирден каталогду кошо аласыз).
    Мисалы, git/git репозиторийин клондоо үчүн, блоблорду жасабастан, текшерүүнү жумушчу көчүрмөнүн түпкү каталогуна гана чектеп, "t" жана "Документация" каталогдоруна өзүнчө текшерүүнү белгилеп, сиз төмөнкүлөрдү көрсөтсөңүз болот:

    $ git клон --фильтр=блоб:жок --сейрек [электрондук почта корголгон]:git/git.git

    $ cd git
    $ git sparse-checkout init --cone

    $ git сейрек-текшерүү кошуу т
    ....
    $ git sparse-checkout Documentation кошуу
    ....
    $ git сейрек текшерүү тизмеси
    Documentation
    t

  • Репозиторийдин учурдагы мазмунун жана тарыхый оңдоолорду издөө үчүн колдонулган "git grep" буйругунун иштеши кыйла жакшырды. Издөөнү тездетүү үчүн, бир нече жиптерди («git grep –threads») колдонуу менен жумушчу дарактын мазмунун сканерлөө мүмкүн болгон, бирок тарыхый оңдоолордо издөө бир жиптүү болгон. Эми бул чектөө объект сактагычынан окуу операцияларын параллелизациялоо мүмкүнчүлүгүн ишке ашыруу менен алынып салынды. Демейки боюнча, жиптердин саны CPU өзөктөрүнүн санына барабар орнотулган, ал азыр көпчүлүк учурда “-threads” опциясын так коюуну талап кылбайт.
  • Репозиторийдин бир нече жумушчу нускалары менен иштөөгө мүмкүндүк берген “git worktree” буйругунун подкомандаларын, жолдорун, шилтемелерин жана башка аргументтерин киргизүүнү автотолтурууга кошумча колдоо.
  • ANSI качуу ырааттуулугу бар ачык түстөр үчүн кошумча колдоо. Мисалы, “git config –color” же “git diff –color-moved” өзгөчөлөнгөн түстөрдүн жөндөөлөрүндө ачык көк үчүн “--format” опциясы аркылуу “%C(brightblue)” белгилей аласыз.
  • Скрипттин жаңы версиясы кошулду fsmonitor-смотрящий, механизм менен интеграцияны камсыз кылуу Facebook Watchman файлдардын өзгөрүшүнө жана жаңы файлдардын пайда болушуна көз салууну тездетүү үчүн. Git жаңыртылгандан кийин талап кылынат алмаштыруу репозиторийге илгич.
  • Растрларды колдонууда жарым-жартылай клондорду тездетүү үчүн оптималдаштыруулар кошулду
    (битмап техникасы) чыгарууну чыпкалоодо бардык объекттерди толук издөөдөн качуу үчүн. Жарым-жартылай клондоштуруу учурунда блоблорду текшерүү (—фильтр=блоб:жок жана —фильтр=блоб:лимит=n) аткарылды
    кыйла тезирээк. GitHub бул оптималдаштыруу жана жарым-жартылай клондоштуруу үчүн эксперименталдык колдоо менен патчтарды жарыялады.

  • "git rebase" буйругу "патч+колдонуунун" ордуна демейки "бириктирүү" механизмин (мурда "rebase -i" үчүн колдонулган) колдонуп, башка серверге жылдырылды. Backends кээ бир майда жолдор менен айырмаланат, мисалы, чыр-чатакты чечкенден кийин операцияны уланткандан кийин (git rebase --continue), жаңы бэкэнд commit билдирүүсүн түзөтүүнү сунуштайт, ал эми эскиси жөн гана эски билдирүүнү колдонгон. Эски жүрүм-турумга кайтуу үчүн, "--apply" опциясын колдонсоңуз болот же "rebase.backend" конфигурациясынын өзгөрмөсүн "колдонуу" кылып орнотсоңуз болот.
  • .netrc аркылуу аныкталган аутентификация параметрлери үчүн иштеткичтин мисалы кутудан тышкары колдонууга ылайыктуу формага кыскартылган.
  • Санарип колтамгасын текшерүүнү аткарган ар кандай элементтер үчүн минималдуу ишеним деңгээлин коюу үчүн gpg.minTrustLevel жөндөөлөрү кошулду.
  • "git rm" жана "git stash" үчүн "--pathspec-from-file" опциясы кошулду.
  • SHA-2дин ордуна SHA-1 хэширлөө алгоритмине өтүүгө даярдыктын алкагында тесттик топтомдорду өркүндөтүү улантылды.

Source: opennet.ru

Комментарий кошуу