mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-06 06:38:57 +00:00
ci: ребейз виден автору до пуша, конфликт называет файлы, уход dev отмечается
Конвейер приводит ветку к dev сам (#257) и при конфликте возвращает задачу, не тратя цикл ревью. Оставались три щели, и все три про то, что человек узнаёт поздно и без подробностей. Первое. Отставание теперь видно в scripts/pre-push-gate.mjs до пуша, с числом коммитов и готовой командой. Это предупреждение, а не гейт: гейтом остаётся конвейер, который забыть не может. Смысл в цене — после любого ребейза разбор становится полным, а не по дельте (§7.2), а конфликт всё равно чинится на машине автора. Отключается --no-rebase-check. Второе. Конфликт называет файлы. Список снимается ДО `git rebase --abort`: abort снимает состояние конфликта вместе с ним, и раньше автору доставалось «не ребейзится» без единого имени. Логика проверена на настоящем конфликте в одноразовом репозитории — два файла названы. Третье. Если dev ушёл вперёд, пока шло ревью, это записывается в summary прогона, а при зелёном вердикте ещё и комментарием: вердикт вынесен по дереву, которое уже не совпадает с вершиной линии, и слияние приведёт ветку к dev. Комментарий только при зелёном — шуметь на каждом прогоне ни к чему, а вот молчать перед слиянием нельзя. Чего задача не делает: не заставляет dev стоять на месте, пока идёт ревью. Если возвраты частые именно из-за темпа, лечится очередью слияний, а это решение о процессе, не о скрипте. Два мутанта проверены руками — «советовать ребейз всегда» и «никогда не сообщать про уход dev», — каждый убит. Issue: #364 User-Visible: no
This commit is contained in:
+10
-3
@@ -791,9 +791,16 @@ node scripts/pre-push-gate.mjs --no-smokes --no-mutants
|
||||
node scripts/pre-push-gate.mjs --max-smokes=3 --max-mutants=1
|
||||
```
|
||||
|
||||
Что прогоняется: `npx tsc --noEmit`, `npm test`, смоки, выбранные
|
||||
`scripts/smoke-select.mjs` по диффу, и мутанты, выбранные
|
||||
`scripts/mutation-gate.mjs --changed` по тем же файлам. Замер на реальном
|
||||
Что прогоняется: проверка, что ветка приведена к `origin/dev`, `npx tsc
|
||||
--noEmit`, `npm test`, смоки, выбранные `scripts/smoke-select.mjs` по диффу, и
|
||||
мутанты, выбранные `scripts/mutation-gate.mjs --changed` по тем же файлам.
|
||||
|
||||
Отставание от `dev` — предупреждение, а не провал набора: гейтом остаётся
|
||||
конвейер, который приводит ветку сам (#257) и забыть не может. Смысл локальной
|
||||
проверки в другом: после любого ребейза разбор на ревью становится полным, а не
|
||||
по дельте (§7.2), а конфликт всё равно чинится на машине автора — дешевле
|
||||
узнать об этом до пуша, чем из комментария через сорок минут (#364). Отключается
|
||||
флагом `--no-rebase-check`. Замер на реальном
|
||||
диапазоне (`953f675~1..953f675`, правка `src/houseplan-card.ts`): типы 5 с,
|
||||
юниты 17–19 с, два смока 22 с — **46 секунд** на всё.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user