ОБНОВЛЕНИЕ · v0.2.2 ·
Инкрементальная проверка: хук остановки — секунды вместо минут
check --incremental перепроверяет только изменённое после последнего зелёного коммита; на карте из 1140 файлов хук остановки ускорился с 385 до 38 секунд.
Когда агент заканчивает работу, хук остановки запускает Crossweft. На большой карте это каждый раз была полная проверка. В этом релизе она стала инкрементальной.
check --incrementalсравнивает с последним коммитом, на котором проверка прошла в этом рабочем дереве, плюс файлы, которые тогда не были закоммичены. Полная проверка запускается, если такого коммита нет, если его записала другая версия Crossweft или если поменялись карта, конфиг или плагин. Запись хранится в каталоге git и никогда не коммитится.- Хук остановки теперь пользуется ею. Замер на карте из 1140 файлов с 13 видами стыков (joint kinds): полная проверка идёт 385 секунд, остановка после правки одного исходного файла занимает 38.
joints.sourcesперечисляет файлы плагинов и их помощники, если вjoints.dirлежит и посторонний код: его правка больше не вызывает полную проверку. Плагин, читающий файл вне этого списка, считается ошибкой, так что список не устареет незаметно.
Принцип за этим: сокращение пути не должно пропускать непроверенный код. Незакоммиченные файлы перепроверяются, а коммит, появившийся во время проверки, не записывается как прошедший.
Источник: v0.2.2 · CHANGELOG.md