Files
docs/public/template-sync-strategy/concepts/rules.md
S.Gromov 1a14df9366 feat: добавить документацию Template Sync Strategy
- добавлены каноны и VitePress-сайт стратегии обновления шаблонов

- подключена карточка документации на главной странице

- добавлены сборочные скрипты, Caddy-маршрут и Docker-сборка

- добавлена git-иконка для карточки и сгенерированы публичные артефакты
2026-05-13 23:23:31 +03:00

2.4 KiB
Raw Blame History

url, description
url description
/template-sync-strategy/concepts/rules.md Набор правил, который удерживает template чистой, а обновления шаблона контролируемыми.

Правила процесса

Небольшой набор правил удерживает схему чистой.

Делаем

  • template обновляем только из templates/master.
  • sync/* создаём от origin/master.
  • origin/template вливаем в sync/*, а не напрямую в master.
  • Конфликты решаем только в sync/*.
  • sync/* -> master вливаем через PR/MR.
  • Для sync-PR/MR отключаем squash.

Не делаем

  • Не правим template руками.
  • Не коммитим изменения приложения в template.
  • Не мержим template -> master напрямую.
  • Не решаем конфликты в master.
  • Не включаем squash для sync/* -> master.

Почему squash нельзя

Squash может уничтожить нормальную связь истории master с историей template.

Git использует историю, чтобы понимать, какие изменения шаблона уже были доставлены в приложение. Если результат обновления шаблона превратить в один squash-коммит, связь с исходными коммитами шаблона станет хуже или исчезнет.

Для sync-PR/MR допустимы:

fast-forward merge = хорошо
merge commit       = допустимо
squash merge       = нельзя

Почему template нельзя пачкать

template — эталонный слепок оригинального шаблона.

Если в неё попадает локальное решение конфликта или изменение приложения, она перестаёт отвечать на вопрос: “какая версия шаблона сейчас подключена к приложению?”.

После этого ломается главная граница ответственности: шаблон отдельно, приложение отдельно, конфликтная зона отдельно.