Домой Софт Вышел Git 2.54: новые инструменты истории и оптимизация работы с репозиториями

Вышел Git 2.54: новые инструменты истории и оптимизация работы с репозиториями

Разработчики Git представили обновление 2.54, добавив удобные инструменты для управления коммитами и оптимизировав работу с крупными репозиториями.

Вышел Git 2.54: новые инструменты истории и оптимизация работы с репозиториями
Вышел Git 2.54: новые инструменты истории и оптимизация работы с репозиториями — иллюстрация к материалу. Источник: linux.org.ru

Состоялся релиз системы контроля версий Git 2.54. Как и прежде, Git делает упор на высокую производительность и эффективные механизмы нелинейной разработки, позволяя гибко работать с ветками. Целостность истории и защита от несанкционированных изменений обеспечиваются за счет хэширования всей истории в каждом коммите, а также использования цифровых подписей для тегов и фиксаций кода. Проект остается верен лицензии GPLv2+.

В этот релиз вошло 770 правок от 137 разработчиков, причем 66 из них внесли свой вклад в развитие Git впервые.

Основные нововведения

Важным дополнением стала экспериментальная команда git history, предлагающая более интуитивные и безопасные способы редактирования истории, чем классическая git rebase:

  • git history reword — позволяет изменить сообщение конкретного коммита, не затрагивая содержимое файлов и индекс. Идеально подходит для исправления опечаток.
  • git history split — дает возможность интерактивно разбить один коммит на два, перенося часть изменений в отдельный объект.

Разработчики планируют расширять функционал в будущих версиях, добавив команды для удаления, объединения (squash) и переупорядочивания коммитов.

Управление обработчиками (хуками)

Теперь хуки можно определять непосредственно в файлах конфигурации, а не только в папке .git/hooks. Это работает на уровне репозитория, пользователя или системы (через /etc/gitconfig). Система поддерживает привязку нескольких обработчиков к одному событию: сначала отработают скрипты из конфигурации, а затем — локальные хуки. Для управления списком используется команда git hook list, а для отключения — параметр hook..enabled = false.

Оптимизация и работа с данными

  • Улучшенное обслуживание: В git maintenance по умолчанию включена стратегия geometric. Она существенно ускоряет работу с крупными монорепозиториями, избегая ресурсоемкой переупаковки всех объектов.
  • Архитектура бэкендов: База данных объектов (ODB) получила новую архитектуру с подключаемыми бэкендами. Это открывает путь к внедрению новых форматов хранения, что критично для работы с большими бинарными файлами и крупными хостингами.
  • Структура репозитория: Команда git repo structure теперь выводит данные о самых крупных объектах, позволяя анализировать «вес» репозитория без сторонних утилит.
  • Git Replay: При воссоздании истории на сервере теперь по умолчанию используется атомарное обновление ссылок. Также добавлена опция --revert для отмены изменений серии коммитов.

Другие улучшения

  • Команда git add -p стала удобнее: при навигации (клавиши «J» и «K») блоки кода помечаются как одобренные или пропущенные. Опция --no-auto-advance предотвращает автоматический переход к следующему файлу.
  • Веб-интерфейс gitweb оптимизирован для использования на смартфонах и планшетах.
  • git send-email теперь поддерживает клиентские сертификаты для отправки писем.
  • Улучшена обработка ошибок при работе через HTTP: ответ 429 (Too Many Requests) теперь корректно распознается как временная проблема, после чего Git автоматически повторяет запрос.
  • Подписи с истекшим сроком действия ключа (если они были валидны на момент создания) больше не подсвечиваются «ошибочным» красным цветом, а помечаются как корректные с указанием на устаревание ключа.
Источник: https://www.linux.org.ru