Выпуск системы управления исходными текстами Git 2.39
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
После двух месяцев разработки опубликован выпуск распределенной системы управления исходными текстами Git 2.39. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.
По сравнению с прошлым выпуском в новую версию принято 483 изменений, подготовленных при участии 86 разработчиков, из которых 31 впервые принял участие в разработке. Основные новшества:
- В команду "git shortlog", предназначенную для отображения сводок со статистикой из истории изменений, добавлена опция "--group" для произвольной группировки коммитов по полям, не ограничивающимся автором или коммитером. Например, для показа списка разработчиков с информацией о числе изменений, учитывающего помощников, упомянутых в поле "Co-authored-by", можно использовать команду:
git shortlog -ns --group=author --group=trailer:co-authored-by
Вывод shortlog можно агрегировать при помощи спецификаторов форматирования и опция "--group" позволяет существенно упростить создание сложных отчётов и избавиться от выполнении дополнительных команд сортировки.
Например, для создания отчёта с информацией о том, сколько коммитов для заданного релиза было принято в каждом месяце, можно указать:
git shortlog v2.38.0.. --date='format:%Y-%m' --group='%cd' -s
2 2022-08
47 2022-09
405 2022-10
194 2022-11
5 2022-12
Раньше для выполнения аналогичной операции потребовалось бы привлечение утилит sort и uniq:
git log v2.38.0.. --date='format:%Y-%m' --format='%cd' | sort | uniq -c
- Расширены возможности механизма "cruft packs", предназначенного для упаковки недостижимых объектов, на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги). Недостижимые объекты удаляются сборщиком мусора, но до удаления определённое время остаются в репозитории для исключения состояний гонки. Механизм "cruft packs" позволяет хранить все недостижимые объекты в одном pack-файле, а данные о времени модификации каждого объекта отражать в отдельной таблице, хранимой в отдельном файле с расширением ".mtimes", что бы они не пересекались с общим временем изменения.
Время нахождения недостижимых объектов в репозитории перед фактическим удалением определяется опцией "--prune=<date>". При этом несмотря на то, что задержка перед удалением является достаточно эффективным и практичным способом предотвращения повреждения репозитория из-за состояния гонки, он не является на 100% надёжным. Чтобы упростить восстановление повреждённого репозитория в новом выпуске предоставлена возможность сохранения отсутствующих объектов, для чего в команду "git repack" добавлена опция "--expire-to", позволяющая задать файл для создания внешней копии всех удаляемых объектов. Например, для сохранения в файле backup.git недостижимых объектов, которые не менялись последние 5 минут, можно использовать команду:
git repack --cruft --cruft-expiration=5.minutes.ago -d --expire-to=../backup.git
- Значительно увеличена (до 70%) скорость выполнения операции "git grep --cached" при поиске в областях, в которых применяется частичное клонирование (sparse-checkout) и для которых имеются частичные индексы (sparse index). Ранее при указании опции "--cached" вначале осуществлялся поиск в обычном индексе, а потом в частичных, что приводило к возникновению ощутимых задержек при поиске в больших репозиториях.
- Ускорено выполнение на сервере проверки связности новых объектов перед их помещением в репозиторий при выполнении операции "git push". За счёт перехода к учёту при проверке только объявленных ссылок, в тестовом репозитории с 7 млн ссылок из которых только 3% охвачены операцией push внесённые оптимизации позволили сократить время проверки в 4.5 раза.
- Для защиты от потенциальных целочисленных переполнений в коде в команде "git apply" ограничен максимальный размер обрабатываемых патчей. В случае если размер патча превышает 1 ГБ теперь будет выводиться ошибка.
- Для защиты от потенциальных уязвимостей внесены изменения для чистки лишней информации из заголовков, выставляемых при использовании модуля h2h3 с опцией GIT_TRACE_CURL=1 или GIT_CURL_VERBOSE=1 вместе с HTTP/2.
- При выполнении операции check out с веткой, которая является символической ссылок на другую ветку, команда "git symbolic-ref HEAD" теперь выводит название целевой ветки, а не имя символической ссылки.
- Добавлена поддержка аргумента @{-1} в опции "--edit-description" ("git branch --edit-description @{-1}") для редактирования описания прошлой ветки.
- Добавлена команда "git merge-tree --stdin", позволяющая передать список параметров через стандартный входной поток.
- На сетевых файловых системах по умолчанию отключён обработчик fsmonitor, отслеживающий изменения в ФС.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://lkml.org/lkml/2022/12/...)
- OpenNews: Уязвимости в Git, проявляющиеся при клонировании субмодулей и использовании git shell
- OpenNews: Выпуск системы управления исходными текстами Git 2.38
- OpenNews: Проект OpenBSD опубликовал git-совместимую систему управления версий Got 0.76
- OpenNews: Выпуск системы управления исходными текстами Git 2.37
- OpenNews: Две уязвимости в Git
Похожие новости:
- Проект Forgejo начал развитие форка системы совместной разработки Gitea
- Судебное разбирательство против Microsoft и OpenAI, связанное с генератором кода GitHub Copilot
- GitHub реализовал поддержку токенов для предоставления выборочного доступа
- Уязвимости в Git, проявляющиеся при клонировании субмодулей и использовании git shell
- На GitHub по ошибке опубликован ключ доступа к базе пользователей Toyota T-Connect
- GitHub добавил поддержку отслеживания уязвимостей в проектах на языке Dart
- Выпуск системы управления исходными текстами Git 2.38
- Проект OpenBSD опубликовал git-совместимую систему управления версий Got 0.76
- Вторая за неделю критическая уязвимость в GitLab
- Критическая уязвимость в GitLab
Теги для поиска: #_git
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 11:23
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
После двух месяцев разработки опубликован выпуск распределенной системы управления исходными текстами Git 2.39. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. По сравнению с прошлым выпуском в новую версию принято 483 изменений, подготовленных при участии 86 разработчиков, из которых 31 впервые принял участие в разработке. Основные новшества:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 11:23
Часовой пояс: UTC + 5