Выпуск распределенной системы управления исходными текстами Git 2.30

Доступен выпуск распределенной системы управления исходными текстами Git 2.30.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям «задним числом» используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.

По сравнению с прошлым выпуском в новую версию принято 495 изменений, подготовленных при участии 83 разработчиков, из которых 29 впервые приняли участие в разработке. Основные новшества:

  • Обновлены шаблоны userdiff для PHP, Rust и CSS. Добавлена поддержка определения функций в bash и POSIX shell.
  • В скрипт автодополнения опций командной строки добавлена возможность раскрытия команд, являющихся псевдонимами псевдонимов, а также реализована поддержка параметров «git stash show», аналогичных параметрам «git diff». Обновлены сценарии автодополнения для Zsh.
  • В «git worktree list» реализовано отображение признака блокировки рабочих деревьев.
  • Продолжено развитие команды «git maintenance», расширенного варианта «git gc».
  • В «git push» добавлена опция »--force-if-includes», нацеленная на решение проблемы с потерей коммитов при неправильном использовании команды «git push --force-with-lease[=‹ref›]». При указании »--force-if-includes» вместе c »--force-with-lease» выполняется дополнительная проверка актуальности заменяемых коммитов.
  • Для «git clone» добавлена настройка clone.defaultremotename, позволяющая определить имя, которое будет использовано для обращения к хосту с которого был клонирован репозиторий.
  • Для «git checkout» добавлена настройка checkout.guess, позволяющая настроить применение опции »--guess» по умолчанию.
  • Для команды «git diff A…B» предложен более информативный аналог «git diff --merge-base A B».
  • В команды семейства «git diff» добавлена опция »-I‹regex›» для игнорирования частей, изменения в которых соответствуют заданному шаблону.
  • В «git archive» при создании tar.gz разрешено указание уровней сжатия выше »-9».
  • Предоставлена возможность настройки размена имён файлов, создаваемых командой «git format-patch» (раньше действовало ограничение в 64 символа).
  • В команду «git rev-parse» добавлена опция »--end-of-options», помогающая в скриптах явно отделить параметр с ревизией, например «git rev-parse --verify -q --end-of-options $rev».
  • В «git update-ref --stdin» добавлена возможность обработки нескольких транзакций в одном сеансе.
  • В различные подкоманды «git config» добавлена опция »--literal-value», позволяющая передать значение value_regex в форме строки.
  • В настройках параметр help.autocorrect теперь может принимать значение 'never' для полного отключения логики определения опечаток в названиях команд (по умолчанию, если указана несуществующая команда, git анализирует типовые опечатки и запускает откорректированную команду, если определён только один вариант замены).
  • Продолжено переписывание команды «git bisect» на языке Си.



Источник: http://www.opennet.ru/opennews/art.shtml? num=54330

© OpenNet