Состоялся релиз распределённой системы управления версиями Git 2.39. Обновление включает в себя 483 изменения от 86 разработчиков.

В обновление Git 2.39 вошло:
команда
git shortlog
теперь поддерживает опцию--group
, которая позволяет группировать коммиты по полям, не ограничиваясь автором. Также доступна фильтрация по соавторам. К примеру, такая команда может выглядеть следующим образом:$ git shortlog -ns --group=author --group=trailer:co-authored-by
git shortlog
можно использовать вместе со спецификаторами форматирования и это упрощает команду и исключает использование дополнительных сортировок. К примеру, раньше формирование отчёта по количеству коммитов заданного релиза за определённое время выполнялось с помощью команды$ git log v2.38.0.. --date='format:%Y-%m' --format='%cd' | sort | uniq -c
, а сейчас её можно заменить на$ git shortlog v2.38.0.. --date='format:%Y-%m' --group='%cd' -s
;улучшили работу функции
cruft packs
, которая упаковывает недостижимые объекты. Теперь они не просто удаляются сборщиком мусора, а помещаются в отдельный pack-файл. Данные о модификации каждого объекта находятся в файле с расширением.mtimes
. Это позволяет избежать возникновения состояния гонки;ускорили работу команды
git grep --cached
во время поиска в областях с частичным клонированием и частичными индексами;команда
git apply
ограничена максимальным размером обрабатываемых патчей. Если их размер больше 1 ГБ, то система выдаст ошибку;теперь при выполнении команды
checkout
с веткой, которая представляет собой символическую ссылку на другую ветку, выводится полное имя ветки, а не ссылки;появилась команда
git merge-tree --stdin
, позволяющая передать список параметров через стандартный поток входа;функция
--edit-description" ("git branch --edit-description @{-1}
теперь поддерживает работу с аргументом@{-1}
.