Выпуск распределённой системы управления исходными текстами Git 2.31
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Доступен выпуск распределенной системы управления исходными текстами Git 2.31. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.
По сравнению с прошлым выпуском в новую версию принято 679 изменений, подготовленных при участии 85 разработчиков, из которых 23 впервые приняли участие в разработке. Основные новшества:
- Добавлена команда "git maintenance", позволяющая выполнять периодические работы на системах не поддерживающих cron. Например, при помощи новой команды можно организовать периодический запуск процесса упаковки репозитория, чтобы не ждать завершения блокировки репозитория при автоматическом выполнении упаковки во время запуска различных команд. Команда "git maintenance" позволяет выполнять оптимизации и операции поддержания оптимальной структуры репозитория в фоновом режиме, не блокируя интерактивный сеанс - раз в час выполняется работа по упреждающей загрузке свежих объектов из удалённого репозитория и обновлению файла с графом коммитов, а каждую ночь запускается процесс упаковки репозитория.
- Добавлена поддержка ведения на диске обратного индекса (revindex) для pack-файлов. Напомним, что Git хранит все данные в форме объектов, которые размещаются в отдельных файлах. Для повышения эффективности работы с репозиторием объекты дополнительно помещаются в pack-файлы, в которых информация представлена в форме потока из объектов, следующих друг за другом (аналогичный формат используется при передаче объектов командами git fetch и git push). Для каждого pack-файла создаётся индексный файл (.idx), позволяющий по идентификатору объекта очень быстро определить смещение в pack-файле, по которому хранится данный объект. Предложенный в Git 2.31 обратный индекс (.rev) нацелен на оптимизацию процесса определения идентификатора объекта по информации о размещении объекта в pack-файле.
Ранее такое преобразование выполнялось на лету во время разбора pack-файла и хранилось только в памяти, что не позволяло повторно использовать подобные индексы и вынуждало генерировать индекс каждый раз. Операция построения индекса сводится к построению массива из пар "объект-позиция" и его сортировке по позиции, что может занимать много времени для больших pack-файлов.
Например, операция вывода содержимого объектов, в которой используется прямой индекс, выполнялась в 62 раза быстрее, чем операция показа размера объектов, для которой данные о связи позиции с объектом не индексировались. После использования обратного индекса указанные операции стали занимать примерно одинаковое время. Обратные индексы также позволяют ускорить операции отправки объектов при выполнении команд fetch и push за счёт прямой передачи уже готовых данных с диска. По умолчанию обратные индексы не создаются, для их генерации требуется включение настройки "git config pack.writeReverseIndex true" с последующей упаковкой репозитория командой "git repack -Ad".
- Добавлены оптимизации производительности, основанные на появлении в файловом формате commit-graph, применяемом для оптимизации доступа к информации о коммитах, новых данных о номере генерации коммита, которые могут использоваться для ускорения дополнительных операций с коммитами.
- Дополнены возможности по переопределению имени основной ветки, применяемой по умолчанию в новых репозиториях (настройка init.defaultBranch). При обращении к внешним репозиториям git пытается извлечь ветку, на которую указывает HEAD, т.е. если внешний сервер использует по умолчанию ветку "main", то операция "git clone" попытается локально извлечь "main". В Git 2.31 поддержка подобного извлечения теперь реализована и для пустых репозиториев. Например, при локальном клонировании нового репозитория перед добавлением в него первых патчей, локальная копия теперь будет содержать выставленное на внешнем сервере имя основной ветки по умолчанию.
- В команду "git rev-list" добавлена опция "--disk-usage", позволяющая вывести сводные данные о размере объектов.
- В предвкушении грядущей замены бэкенда для выполнения слияний, значительно оптимизировано определение переименований.
- Прекращена поддержка устаревшей библиотеки регулярных выражений PCRE1.
- Предоставлена возможность принудительного запрета использования сокращённых ссылок, действующего независимо от алгоритма хэширования. Запрет включвется через присвоения значения "no" параметру core.abbrev.
- В команду "git rev-parse" добавлена опция "--path-format=(absolute|relative)" для явного определения вывода относительных или абсолютных путей.
- В скриптах для автодополнения ввода в Bash упрощено добавление правил дополнения для собственных подкоманд "git".
- В команду "git bundle" добавлена опция "--stdin" для чтения ссылок из стандартного входного потока.
- В команду "git log" добавлена новая опция "--diff-merges=<how>".
- В команду "git ls-files" добавлена опция "--deduplicatecan" для устранения дубликатов при выводе.
- Добавлены новые маски для исключения диапазона коммитов - "<rev>^!" и "<rev>^-<n>".
- В команду "git range-diff" добавлены опции "--left-only" и "--right-only" для показа только одной стороны сравниваемого диапазона.
- В команды "git diff" и "git log" добавлены опции --skip-to=<path>" и "--rotate-to=<path>" для пропуска или перемещения в конец начальных путей.
- В команду "git difftool" добавлена опция "--skip-to=<path>" для возобновления прерванного сеанса с произвольного пути.
- Кодекс поведения (Code-of-conduct), определяющий основные принципы разрешения конфликтных ситуаций между разработчиками, обновлён до версии 2.0 (ранее использовалась версия 1.4).
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://lkml.org/lkml/2021/3/1...)
- OpenNews: Обновление Git с устранением уязвимости, допускающей удалённое выполнение кода
- OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.30
- OpenNews: Критическая уязвимость в Git LFS, проявляющаяся на платформе Windows
- OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.29
- OpenNews: OpenJDK переходит на использование Git и GitHub
Похожие новости:
- [Программирование, Терминология IT, Управление разработкой] Энтерпрайз разработка с нуля
- [Системное администрирование, Программирование, Git, Разработка под Linux, DevOps] DevOps: автоматизация инфраструктуры на примере Terraform, docker, bash, prometheus exporters, Gitlab и WireGuard
- [Информационная безопасность, Open source, Системное администрирование, GitHub, Разработка под Linux] Эксперты обнаружили критическую уязвимость в подсистеме iSCSI ядра Linux, баг в коде был с 2006 года
- [DevOps, Kubernetes] Подборка телеграм-каналов для DevOps инженеров
- [Open source, Git, Системы управления версиями, Системы сборки, DevOps] Вышел релиз GitLab 13.9 с панелью оповещений безопасности и режимом обслуживания (перевод)
- [.NET, C#] Пошаговая инструкция по настройке и использованию Gitlab CI + Visual Studio для сборки приложения .NET Framework
- Критика Microsoft после удаления из GitHub прототипа эксплоита для Microsoft Exchange
- [Информационная безопасность, GitHub, Софт, IT-компании] GitHub заблокировал репозиторий с демонстрацией уязвимости ProxyLogon в Microsoft Exchange
- GitLab прекращает использование имени "master" по умолчанию
- [Интерфейсы, Транспорт, Урбанизм] Digital Customer Experience на примере гаражного автосервиса
Теги для поиска: #_git
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 21:52
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Доступен выпуск распределенной системы управления исходными текстами Git 2.31. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. По сравнению с прошлым выпуском в новую версию принято 679 изменений, подготовленных при участии 85 разработчиков, из которых 23 впервые приняли участие в разработке. Основные новшества:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 21:52
Часовой пояс: UTC + 5