Издание на системата за управление на изходния код Git 2.44

След три месеца разработка, е публикувана версия 2.44 на разпределената система за управление с изходен код Git. Git е една от най-популярните, надеждни и високопроизводителни системи за управление на версии, предоставяща гъвкави средства за нелинейна разработка, базирани на разклоняване и сливане на клонове. За осигуряване на целостта на историята и устойчивост на промените "заден ход" се използва неявно хеширане на цялата предходна история във всеки комит, възможно е също удостоверяване с цифрови подписи на разработчици за отделни тагове и комити. Кодът на Git се разпространява под лиценз GPLv2+.

В новата версия са приети 503 промени в сравнение с предишното издание, подготвени с участието на 85 разработчици, от които 34 участват в разработката за първи път. Основни нововъведения:

  • Добавена е нова команда „git replay“, която може да се използва като алтернатива на „git rebase“ и за възстановяване на историята на сървър без работно дърво (bare-репозиториум, без работно дърво), обработка на няколко клона едновременно, извършване на операция rebase за клонове, различни от текущо извлечените, или просто за ускоряване на операциите по сливане.
  • Добавена е поддръжка на системата за непрекъсната интеграция GitLab CI.
  • В командите „git add“ и „git stash“ е добавена поддръжка на атрибути на пътища „:(attr:…)“, зададени аналогично на командата „git show“. Например „git add ':(attr:~binary)'“ може да се използва за добавяне на всички текстови (небинарни) файлове в индекса. Допълнително, в новия релиз е предлаган атрибутът „builtin_objectmode“ за филтриране на файлови пътища по права на достъп. Например, „git add ':(attr:builtin_objectmode=100755)'“ може да се използва за добавяне на всички изпълними файлове.
  • Добавена поддръжка за повторно използване на обекти, разпределени в множество pack-файлов, за които съществува обобщен индекс (multi-pack-index) с данни за наличността на обектите (оптимизация, позволяваща вместо фактическото предаване на данни, да се препрати към използването на данни, които вече присъстват в pack-файловете). От версия 2.44 git вече може да обработва повторно използване на обекти над множество pack-файлове, без необходимост от повторно опаковане на репозитория в един pack-файл. За активиране на новата функция, следва да се изпълнят командите: git config —global pack.allowPackReuse multi git multi-pack-index write —bitmap

    след което броят на pack-файловете, от които се повторно използват обекти, може да бъде проследен в стойността «pack-reused … (from N)», показвана при изпълнение на «git push».

  • Командата «git rebase —autosquash» сега може да се прилага за операции rebase в неинтерактивен режим, което позволява извършване на rebase и бързо прилагане на fixup-корекции без инспекция на списъка с промени и без да се променя променливата на средата GIT_SEQUENCE_EDITOR.
  • В командата «git merge-file» е добавена опция «—diff-algorithm» за избор на алтернативен алгоритъм за оценка на разликите между файловете.
  • В командата «git checkout -B []» е забранено обновяването и извличането на клонове, използващи друго работно дърво. За възстановяване на старото поведение е добавена опция «—ignore-other-worktrees».
  • Добавена е възможност за задаване на настройката «git config advice.pushAlreadyExists» стойност «true», която премахва инструкциите за деактивиране на подсказките (hint) при изхода («Disable this message with…»), заемащи място на екрана.
  • Оптимизирана е функцията на командата «git for-each-ref» с опция «—no-sort», която сега води до извеждане в неопределен ред (преди при указване на «—no-sort» все пак се прилагаше сортиране по азбучен ред). След оптимизациите, прилагането на «—no-sort» сега ускорява «git for-each-ref» с около 20% в репозитории с голям брой референции.
  • В бекенда за управление на удостоверения wincred е добавена поддръжка за обновяване на OAuth токени, по аналогия с начина, по който е реализирано в бекендите credential-cache и credential-libsecret.
  • В «git fetch» е добавена поддръжка за параметъра на конфигурацията «fetch.all», който ще бъде обработен по аналогия с добавянето на опцията «—all» в командния ред.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster