Вышел Git 2.56. В выпуске улучшили рабочие процессы и серьёзно поработали над производительностью, особенно для больших репозиториев.
Одно из главных нововведений - опция --resolved у команды git add. Она индексирует файлы после разрешения конфликтов слияния и не затрагивает посторонние изменения в рабочем дереве. Перед индексацией Git также проверяет, не осталось ли маркеров конфликта, и это помогает избежать ошибок при их разрешении.
В выпуске появилась команда git branch --delete-merged, которая упрощает удаление локальных веток, уже слитых в upstream. Также в Git 2.56 расширили новую команду git refs: теперь она умеет создавать, обновлять, удалять и переименовывать ссылки.
Что касается работы с историей, экспериментальная команда git history получила операцию drop, которая удаляет коммит и переносит последующие коммиты поверх его родителя. В экспериментальной команде git replay появилась опция --linearize.
По части производительности GitHub сообщает о существенном ускорении расчёта merge base и других операций на очень больших репозиториях: для части сценариев время выполнения сократилось в разы.
Обслуживание репозиториев тоже улучшили. Перепаковка с обходом путей (path-walk repacking) получила поддержку дополнительных оптимизаций, которые в некоторых случаях заметно сокращают объём занимаемого хранилища.
Ещё одно изменение: git bisect run теперь умеет автоматически сбрасывать своё состояние после того, как найдёт проблемный коммит. Git стал лучше подсказывать при типичных ошибках в git push, а частичные клоны получили более удобные способы отбрасывать крупные объекты из локального кеша, которые позже можно скачать заново.
Наконец, в Git 2.56 улучшили git log --follow, отрисовку графов и внесли ряд внутренних исправлений, связанных с масштабируемостью, чтобы Git лучше работал с очень большими кодовыми базами.
Подробности можно найти в анонсе.





Пока нет комментариев. Будьте первым!