История на миллион коммитов: как мы работаем с графом истории в Arc VCS
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
В Яндексе активно используют монорепозитории и trunk‑based development — это ускоряет разработку: ежедневно в trunk вливают до 10 000 коммитов, а общая длина ветки превысила 10 миллионов коммитов.
Масштабы выявили ограничения классических алгоритмов (в том числе из git) — пришлось адаптировать и оптимизировать подходы. В докладе расскажу, как мы ускорили работу с историей в Arc VCS на трёх уровнях: 1) лог коммитов: отказ от классического BFS и его оптимизация; 2) история файла: три реализации индекса и сравнение с решениями git, SVN, jj, sapling; 3) blame: создание индекса для отображения авторства каждой строки.
Вы узнаете, как устроены привычные инструменты, где упираются в ограничения по производительности и как их можно ускорить. Покажу одну из самых старых строк в кодовой базе Яндекса — пример кода, который живёт без изменений уже 20 лет.
Ведущий разработчик службы инструментов репозитория
Видео
Другие доклады секции
Platform Engineering