Выпуск системы управления исходными текстами Git 2.37
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Представлен выпуск распределенной системы управления исходными текстами Git 2.37. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.
По сравнению с прошлым выпуском в новую версию принято 395 изменений, подготовленные при участии 75 разработчиками, из которых 20 впервые приняли участие в разработке. Основные новшества:
- Доведён до готовности к повсеместному использованию механизм частичных индексов (sparse index), охватывающих лишь часть репозитория. Частичные индексы позволяют повысить производительность и сэкономить место в репозиториях, в которых выполняются операции частичного клонирования (sparse-checkout) или осуществляется работа с неполной копией репозитория. В новом выпуске завершена работа по интеграции частичных индексов в команды "git show", "git sparse-checkout" и "git stash". Наиболее заметный выигрыш в производительности от использования частичных индексов наблюдается в команде "git stash", скорость выполнения которой в некоторых ситуациях возросла на 80%.
- Реализован новый механизм "cruft packs" для упаковки недостижимых объектов (unreachable), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги). Недостижимые объекты удаляются сборщиком мусора, но до удаления определённое время остаются в репозитории для исключения состояний гонки. Для отслеживания периода нахождения недостижимых объектов необходима привязка к ним меток с временем изменения подобных объектов, что не позволяет хранить их в одном pack-файле, в котором все объекты имеют общее время изменения. Ранее применяемое сохранение каждого объекта в отдельном файле приводило к проблемам при наличии большого числа свежих недостижимых объектов, ещё не подпадающих под удаление. Предложенный механизм "cruft packs" позволяет хранить все недостижимые объекты в одном pack-файле, а данные о времени модификации каждого объекта отражать в отдельной таблице, хранимой в файле с расширением ".mtimes".
- Для Windows и macOS реализован встроенный механизм отслеживания изменений в файловой системе, позволяющий обойтись без перебора всего рабочего каталога при выполнении таких операций, как "git status". Ранее для отслеживания изменений через hook-и могли подключаться внешние утилиты отслеживания изменений в ФС, такие как Watchman, но это требовало установки дополнительных программ и настройки. Теперь указанная функциональность встроена и может быть включена командой
"git config core.fsmonitor true".
- В команде "git sparse-checkout" объявлена устаревшей поддержка альтернативного режиму "--cone" метода определения шаблонов для частичного клонирования, позволяющего при определении подпадающей под операцию клонирования части репозитория перечислять отдельные файлы с использованием синтаксиса ".gitignore", что не позволяет использовать для оптимизации частичные индексы.
- Повышена гибкость настройки вызова fsync() для сброса изменений на диск. В параметр "core.fsyncMethod" добавлена поддержка стратегии синхронизации "batch", позволяющей ускорить работу при записи большого числа отдельных файлов за счёт накопления изменений в кэше обратной записи, сбрасываемом одним вызовом fsync(). Проведённый тест, в результате которого в командой "git add" было добавлено 500 файлов, при включении нового режима был выполнен за 0.15 секунд, в то время как при вызове fsync() для каждого файла потребовалось 1.88 секунд, а без использования fsync - 0.06 секунд.
- В команды обхода веток, подобные "git log" и "git rev-list", добавлена опция " --since-as-filter=X", позволяющая отсеять информацию о коммитах, время создания которых старше "X". В отличие от опции "--since" новая команда реализована в виде фильтра, не останавливающего перебор после первого коммита, старше заданного времени.
- В команде "git remote" при указании флага "-v" обеспечен вывод информации о частичных клонах репозитория.
- Добавлена настройка "transfer.credentialsInUrl", которая может принимать значения "warn", "die" и "allow". В случает указания в параметре "remote.<name>.url" учётных данных открытым текстом попытка выполнения операций "fetch" или "push" будет завершена ошибкой, если настройка "transfer.credentialsInUrl" принимает значение "die", или предупреждением, если установлено значение "warn".
- По умолчанию задействована новая реализация интерактивного режима команды "git add -i", переписанная с Perl на Си.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://lore.kernel.org/git/xm...)
- OpenNews: Выпуск системы управления исходными текстами Git 2.36
- OpenNews: Две уязвимости в Git
- OpenNews: Выпуск системы управления исходными текстами Git 2.35
- OpenNews: Критическая уязвимость в Git LFS, проявляющаяся на платформе Windows
- OpenNews: Обновление Git с устранением уязвимости, допускающей удалённое выполнение кода
Похожие новости:
- GitHub ввёл в строй систему машинного обучения Copilot, генерирующую код
- Разработчики Wine приняли решение о переводе разработки на GitLab
- Сбой в GitLab-инфраструктуре FreeDesktop, затронувший репозитории многих проектов
- GitHub сворачивает разработку редактора кода Atom
- В NPM включена обязательная двухфакторная аутентификация для 500 самых популярных пакетов
- GitHub раскрыл данные о взломе инфраструктуры NPM и выявлении открытых паролей в логах
- GitHub переходит на использование обязательной двухфакторной аутентификации
- GitHub обновил правила, касающиеся торговых санкций
- Проект Wine рассматривает возможность перевода разработки на платформу GitLab
- Выпуск СУБД libmdbx 0.11.7. Перенос разработки на GitFlic после блокировки в GitHub
Теги для поиска: #_git
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:39
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Представлен выпуск распределенной системы управления исходными текстами Git 2.37. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. По сравнению с прошлым выпуском в новую версию принято 395 изменений, подготовленные при участии 75 разработчиками, из которых 20 впервые приняли участие в разработке. Основные новшества:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:39
Часовой пояс: UTC + 5