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

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

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

  • В команду «git commit» добавлена опция »--trailer ‹key›[=‹value›]», которая позволяет упростить прикрепление к коммиту собственной структурированной информации (trailer) в формате ключ/значение, которую можно затем обработать командой «interpret-trailers».

  • Вместо механизма GIT_CONFIG_NOSYSTEM, применяемого для предотвращения чтения из общего для всей системы файла конфигурации, предложено использовать механизм GIT_CONFIG_SYSTEM, позволяющий явно указать из какого файла следует загружать общесистемные настройки, а также параметр GIT_CONFIG_GLOBAL для переопределение привязанных к отдельным пользователям настроек в $HOME/.gitconfig. Присвоение переменной GIT_CONFIG_SYSTEM пустого значение меняет поведение на эквивалентное GIT_CONFIG_NOSYSTEM.
  • При использовании второй версии коммуникационного протокола Git при выполнении «git push» реализовано определение общего предка на принимающей стороне, что позволило довести эффективность работы «git push» до уровня «git fetch» и исключить загрузку объектов, в которых нет необходимости.

  • Добавлен простой IPC-интерфейс, позволяющий создавать сервисы, такие как fsmonitor.

  • Прекращена обработка файлов ».gitattributes»,».gitignore» и ».mailmap», в случае, если они являются символическими ссылками.
  • Для транспорта HTTP добавлена поддержка кэширования пароля, успешно использованного для разблокировки сертификата.

  • В команде «git stash show» реализована возможность отображения неотслеживаемой части хранилища временно убранных файлов.

  • Предложена более продвинутая стратегия переупаковки репозитория командой «git repack», позволяющая снизить потребление ресурсов при переупаковке.

  • В команде «git commit» реализован расширенный вариант опции »--fixup» — »--fixup=(reword|amend): ‹commit›», предоставляющий выбор, изменять только сообщение в логе или сообщение и содержимое.

  • В команде «git send-email» учтена установка настройки core.hooksPath.

  • В «git format-patch -v‹n›» разрешено использование счётчиков, не являющихся целым числом.

  • В «git clone» добавлена опция »--reject-shallow», позволяющая запретить клонирование из репозиториев в режиме shallow (без полной истории изменений).

  • В программе «gitweb» добавлен режим скрытия email, заменяющий похожие на email строки при выводе.

  • Изменена логика обработки команды «git apply --3way», которая теперь вначале пытается применить алгоритм трёхстороннего слияния и только в случае сбоя или возникновении конфликта откатывается на обычное применение патча (раньше было наоборот).
  • В команде «git apply» разрешено одновременное указание опций »--3way» и »--cached».

  • В Userdiff добавлены шаблоны для языка «Scheme».

  • В команду «git log» добавлена опция »--diff-merges=‹style›» и настройка log.diffMerges для выбора режима по умолчанию.

  • В команды «git add» и «git rm» добавлена дополнительная защита от изменения данных в путях, находящихся вне области операции частичного клонирования (sparse checkout).

  • В команду «git rev-list» добавлена опция »--filter=object: type=‹type›» для исключения определённого типа объектов из pack-файла, генерируемого командой pack-objects.

  • В «git pack-objects» запрещено указание отрицательных значений в опциях, принимающих числовые значения, таких как »--window» и »--depth».



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

© OpenNet