Anthropic ушла с git, чтобы выдержать 30 000 слияний в день

Если бы каждая из примерно 25 миллионов ежедневных CI-выгрузок кода в Anthropic наивно тянула репозиторий из git, набегало бы больше 600 петабайт трафика в сутки. Поэтому, как рассказывает инженерный блог Anthropic, компания написала собственную систему контроля версий Scion и за пять месяцев перевела на неё весь монорепозиторий.
Коротко
- Команда из семи человек построила в Anthropic систему контроля версий Scion и инструмент ревью Antique и полностью ушла с git, пока объём ежедневных слияний вырос в 10 раз.
- Клиенты Scion всегда онлайн: историю, blame и слияния считает сервер, файлы отдают кэши с долей попаданий выше 99% на каждом уровне, а инфраструктура в 200 раз скромнее зеркал git по CPU и памяти.
- Отдавать Scion наружу Anthropic не берётся: система слишком далеко ушла от git, требует собственных ревью, поиска кода и CI и имеет смысл только для огромных монорепозиториев.
Если вы не следили: git устроен децентрализованно, каждый клон хранит полную историю и умеет считать diff и blame офлайн. Anthropic перепробовала все стандартные обходные пути для больших монорепозиториев, от shallow clone и sparse checkout до promisor remotes и снапшотов-«семян» в blob-хранилище, а на пике держала несколько сотен внутренних зеркал git. С ростом числа слияний семена всё дальше отставали от main, а зеркала становилось всё труднее обслуживать.
С мая по сентябрь 2026 года число слияний в день выросло с 2 500 до более чем 30 000
В Anthropic пишут, что написание кода перестало быть узким местом: Claude сам гоняет исследовательские циклы, оптимизирует сложные программы и строит сервисы с нуля. Упираться всё стало в инфраструктуру, рассчитанную на людей: контроль версий, сборки и CI. В мае 2026 года в монорепозиторий вливали в среднем около 2 500 изменений в день, в сентябре уже больше 30 000.
Замедления авторы не ждут: по их словам, скрытый спрос на слияния практически бесконечен, и каждое снятое узкое место сразу добавляет кода. Сам репозиторий тоже распух. История одной только ветки main весит почти 100 ГБ, сжатая рабочая копия больше 25 ГБ, а CI делает порядка 25 миллионов выгрузок кода в день, не считая сред разработчиков, песочниц агентов и исследовательских задач.
Помимо Scion, за те же пять месяцев сделали Antique для ревью, поиск по коду, развитую систему прав доступа и инструменты для приземления больших объёмов проверенного кода. Всем этим занималась команда из семи человек.
Инфраструктура Scion в 200 раз меньше прежних зеркал git по CPU и памяти
Каждый уровень кэша держит долю попаданий выше 99% и не хранит долгоживущего состояния, так что его легко нарастить. По CPU и памяти инфраструктура Scion в 200 раз меньше прежней системы зеркал git. CI и исследовательские задачи выгружают код на два порядка быстрее, за секунды вместо минут, и один только CI получил выигрыш в 25% мощности CPU.
По словам авторов, Scion входит в число самых протестированных кодовых баз, с которыми они работали. Даже в сжатые сроки команда построила герметичные симуляции всех нетривиальных взаимодействий с инфраструктурой и контролем версий, фаззинг и ограничение частоты запросов, а Claude походя нашёл оптимизацию запросов о предках коммитов, которые промахивались мимо индекса.
Claude Mythos Preview переписал конвейер миграции: в 20 раз меньше памяти и в 4 раза быстрее
Строить Scion начали примерно тогда, когда внутри Anthropic появились Claude Mythos Preview и Claude Tag. Прототип конвейера переноса из git в Scion команда написала в основном руками, а ранний внутренний снапшот Mythos Preview без дополнительных инструкций переписал его: в 20 раз меньше памяти, в 4 раза быстрее, все неявные инварианты порядка загрузки сохранены.
По словам авторов, все инженеры проекта теперь считают, что Claude пишет код лучше них, но понимание связей между системами и проектных компромиссов осталось за людьми. Часто их роль сводилась к слову «нет»: во время миграции несколько систем пытались узнать момент слияния в main, линейно читая лог коммитов, вместо того чтобы спросить инструмент ревью.
Состязательное ревью тоже бывает близоруким: одно из них не доверяло другому внутреннему сервису, и Claude обложил код лишними проверками. Люди по-прежнему смотрят каждое изменение, но оценивают его замысел и построчно код уже не читают.
Сервер Scion считает историю, blame и слияния, клиент держит только кэш
Scion спроектирован с оглядкой на Piper в Google и Sapling в Meta, но исходит из того, что клиент всегда онлайн. Клиент держит ограниченный кэш объектов, раскладывает файлы рабочей копии и следит за изменениями на диске. Историю файлов, blame, коммиты, слияния и rebase делает сервер, и те же запросы открыты через API, поэтому многим задачам CI локальный репозиторий не нужен вовсе.
Единица работы называется changeset, запись в write-ahead log. Где коммит git указывает на дерево файлов, changeset хранит список файлов, изменившихся относительно первого родителя, и адресованные по содержимому ссылки на сжатые данные в blob-хранилище. Похоже на бухгалтерскую проводку: записано только движение, остатки считают отдельно.
Без packfiles, блокировок и согласования между серверами changesets принимаются очень быстро, и стоимость коммита растёт с размером изменения, а не всего репозитория. Ветки, кроме main и релизных, не поощряются, а сдвиг ссылки сводится к compare-and-swap в одной строке Spanner. Для blame, истории путей и графа коммитов строятся производные данные, каждый тип рекурсивно через родителей, сразу или отложенно, и клиент их устройства не видит.
Клиент Scion сам запрашивает недостающие объекты, начиная с корневого дерева
При выгрузке клиент Scion не рассказывает серверу, что у него уже лежит. Он начинает с корневого дерева, проверяет локальное хранилище и рекурсивно запрашивает недостающие деревья, затем так же blob-ы. Каждый запрос касается конкретного неизменяемого объекта, поэтому ответить может любой кэш, а без многогигабайтного packfile процесс легко возобновить. Sparse и виртуальные выгрузки получаются сами: ненужные деревья клиент просто не просит.
На машинах флота клиент общается через сокет с scion-daemon, который хранит объекты для всего узла и стартует с периодически обновляемого снапшота. Демон ходит только в региональные scion-cache, а те отдают объекты прямо из памяти в дисковом формате демона, без вычисления разницы и дельта-сжатия. Промахи кэша уходят к основным scion-server, которые читают Spanner или облачное хранилище.
Все три уровня отвечают на одинаковые RPC, так что клиенту не нужно знать топологию кэшей. Теоретически любой уровень мог бы говорить с любым, но иерархию соблюдают строго: в Anthropic не хотят, чтобы сбой регионального scion-cache завалил запросами scion-server и положил всю систему.
Авторы сами сужают применимость: Scion имеет смысл только для гигантских монорепозиториев, а Anthropic, по их словам, может тратить токены на внутренние нужды больше, чем захотел бы любой другой бизнес. Странно, что при обилии цифр о скорости в тексте нет ни одной о деньгах: сколько стоило построить и держать Scion, не раскрывается. Как отмечает Crypto Briefing, уход из экосистемы git несёт риски, а долгосрочные расходы на поддержку предсказать труднее, чем стартовые бенчмарки.
Что Anthropic предлагает владельцам git
Anthropic ожидает, что похожие проблемы станут обычными в ближайшие 6–12 месяцев, и вместо выпуска Scion предлагает перенести удачные идеи в git: развитые серверные RPC, возможно стандартизированные между платформами, новый протокол согласования и sparse- и shallow-функции, которые хорошо сочетаются друг с другом. Партнёрами компания называет GitHub, GitLab и open source-сообщество, но конкретных сроков или совместных проектов пока не названо.
Дальше
Gemini 4 Argon делит миллион токенов между вводом и ответом, Видео
Лимит Gemini 4 Argon в 1 миллион токенов Google теперь называет «общим на вход и выход», а 30 сентября это был потолок вывода. Загрузите 800 000 токенов кода, и на ответ останется 200 000. Бывало, что длинный промпт съедал у модели место на ответ?
Читайте также
- Один инженер пересобрал CI-сервис Anthropic за три недели
- Copilot переписал сам себя на Rust: 800 000 строк
- В новых тарифах Cursor за Claude платят с первого запроса
- Торвальдс правит ядро Linux вместе с Claude Code
- Сканер Anthropic шлёт отчёты о багах без проверки людьми
- В Max 20x входит 200 долларов в месяц на Claude API
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

