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

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

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

  • Жарым-жартылай клондоштуруу мүмкүнчүлүгү турукташтырууга жана толук даярдыкка жакындап келе жатат, бул маалыматтын бир бөлүгүн гана өткөрүп берүүгө жана репозиторийдин толук эмес көчүрмөсү менен иштөөгө мүмкүндүк берет. Кадимки клон репозиторийдеги бардык маалыматтарды, анын ичинде өзгөртүү тарыхындагы ар бир файлдын ар бир версиясын көчүрөт. Өтө чоң репозиторийлер үчүн маалыматтарды көчүрүү трафиктин жана диск мейкиндигинин олуттуу өсүшүнө алып келет, ал тургай иштеп чыгуучу файлдардын бир бөлүгүнө гана кызыкдар. Иштеп жаткан булак дарагынын бир бөлүгүн гана алууну жеңилдетүү үчүн, жаңы релиз эксперименталдык "сейрек текшерүү" буйругун жана "клон" буйругу үчүн жаңы "--сейрек" опциясын киргизет.

    Мурда тандалма клондоо процесси тапшырма аркылуу аткарылчу чыпкалар керексиз мазмунду чыпкалоо жана жетишпеген файлдарды толтурууну өчүрүү үчүн “—No-checkout” опциясы. Андан кийин, текшерүү операциясын аткаруудан мурун, core.sparseCheckout жөндөөсүн иштетүү жана .git/info/sparse-checkout файлында алынып салынган жол үлгүлөрүнүн тизмесин аныктоо керек болчу. Мисалы, блобсуз клондоо жана 2 же андан көп тереңдиктеги подкаталогдордон файлдардын чыгарылышын алдын алуу үчүн, сиз:

    git clone --filter=blob:none --no-checkout /сиздин/репозиторийиңиз/бул жерде репо
    $cd репо
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git текшерүү.

    Жаңы "git sparse-checkout" буйругу ишти бир топ жеңилдетет жана толук эмес репозиторий менен иштөө процессин төмөнкү буйруктарга кыскартат:

    git clone --filter=blob:none --sparse /сиздин/репозиторийиңиз/бул жерде репо
    git sparse-checkout set /path/to/check/out

    Sparse-checkout буйругу .git/info/sparse-checkoutти кол менен конфигурациялоосуз эле текшерүү үчүн жолдордун тизмесин коюуга (коюуга), ошондой эле жолдордун учурдагы тизмесин көрсөтүүгө (тизме) жана жарым-жартылай текшерүүлөрдү (иштетүү) иштетүүгө же өчүрүүгө мүмкүндүк берет. /өчүрүү).

    Абдан чоң репозиторийлер жана калыптардын тизмелери менен иштөөнү оптималдаштыруу үчүн, "git config core.sparseCheckoutCone", бул уруксат берилген үлгүлөрдү чектейт (эркин .gitignore үлгүлөрүнүн ордуна, сиз берилген подкаталогдогу бардык жолдордун жана бардык файлдардын текшерилиши керекпи же жок экенин белгилей аласыз). Мисалы, чоң репозиторийде “A/B/C” каталогу болсо жана бардык иш “С” подкаталогунда топтолсо, анда sparseCheckoutCone режимин иштеткенде, “git sparse-checkout set A/B/ C" "C" нин бүт мазмунун чыгарат, бирок "А" жана "В" дан "C" менен иштөө үчүн зарыл болгон бөлүктөрдү гана чыгарат.

  • Документтен («git rebase -h») «--preserve-merges» опциясына бардык шилтемелер алынып салынды, алар эскирген жана анын ордуна милдеттердин топтомун көчүрүү үчүн колдонулушу керек.git rebase --rebase-биргелешет".
  • Почта тизмелерине жөнөтүлгөн патчтары бар билдирүүлөрдүн окулушун жакшыртуу үчүн "git format-patch —cover-from-description" опциясы кошулду, көрсөтүлгөндө, бөлүмдүн сүрөттөмө текстинин биринчи абзацы тема катары колдонулат. тактардын топтому үчүн коштомо кат.
  • "git apply -3way" буйругун жана "merge.conflictStyle" жөндөөсүн биргелешип колдонуу үчүн ишке ашырылган колдоо ("git apply" азыр аракеттен кийин чыр-чатакты чечүү үчүн merge.conflictStyle конфликтинин сүрөттөмө стилин эске алат. репозиторийге патч файлын колдонууга).
  • "git diff/grep --show-function/-function-context" сыяктуу операцияларда колдонулган функцияны аныктоо коду тил программаларында функциянын чектерин аныктоону колдоо үчүн кеңейтилген. Колдун.
  • "git add", "git commit", "git reset" жана башка буйруктарга жаңы опция кошулду - "-pathspec-from-file", бул файлдан же киргизүү агымынан жолдордун тизмесин жүктөөгө мүмкүндүк берет. , аларды буйрук сабында тизмелөөнүн ордуна.
  • Милдеттерди жазууда каталогдун деңгээлинде атын өзгөртүү көйгөйү чечилди. Эгер подкаталогдун мазмуну репозиторийдин тамырына жылдырылса, аныктама иштебейт.
  • Кайрадан иштелип чыккан “git add -i” буйругунун алгачкы ишке ашырылышы сунушталды, бул сизге өзгөрүлгөн мазмунду интерактивдүү түрдө кошууга мүмкүндүк берет, Перлден Cге кайра жазылган. Ушундай эле "git add -p" буйругун кайра иштетүү жүрүп жатат.
  • “git log –graph” буйругу рефактордолуп, репозиторийдеги өзгөрүүлөрдүн тарыхы бар графиктин ASCII сүрөтүн түздү. Кайра иштеп чыгуу окуянын структурасын бурмалоосуз чыгарууну бир кыйла жакшыртууга жана жөнөкөйлөштүрүүгө мүмкүндүк берди, бул, мисалы, терминалдык сызыктын туурасынан ашкан сүрөт менен көйгөйдү чечти.
  • "git log --format=.." опциясы чыгаруу форматын өзгөртүүгө мүмкүндүк берет,
    "@" белгисинин алдында көрсөтүлгөн электрондук почта дарегинин бир бөлүгүн гана көрсөтүү үчүн "l/L" желектерин колдоо менен кеңейтилген (мисалы, бардык иштеп чыгуучулардын бир эле доменде бардык электрондук почталары болгондо пайдалуу).

  • "git submodule" буйругуна "set-url" подкомандасы кошулду.
  • сына өтүүгө даярдык көрүү үчүн тест комплекттери жаңыртылды
    SHA-2дин ордуна SHA-1 хэширлөө алгоритми.

Source: opennet.ru

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