- добавлены каноны и VitePress-сайт стратегии обновления шаблонов - подключена карточка документации на главной странице - добавлены сборочные скрипты, Caddy-маршрут и Docker-сборка - добавлена git-иконка для карточки и сгенерированы публичные артефакты
2 lines
5.7 KiB
JavaScript
2 lines
5.7 KiB
JavaScript
import{_ as a,o as t,c as r,ae as l}from"./chunks/framework.B1nRs-GM.js";const h=JSON.parse('{"title":"Template Sync Strategy","description":"Управляемое обновление проектов от шаблона через чистую ветку template, временные sync-ветки и PR/MR.","frontmatter":{"title":"Template Sync Strategy","description":"Управляемое обновление проектов от шаблона через чистую ветку template, временные sync-ветки и PR/MR.","keywords":["template sync","шаблон проекта","обновление шаблона","git template","sync branch","template branch"]},"headers":[],"relativePath":"overview.md","filePath":"overview.md"}'),o={name:"overview.md"};function i(s,e,c,n,d,p){return t(),r("div",null,[...e[0]||(e[0]=[l('<div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /template-sync-strategy/overview.md for this page in Markdown format</div><h1 id="template-sync-strategy" tabindex="-1">Template Sync Strategy <a class="header-anchor" href="#template-sync-strategy" aria-label="Permalink to "Template Sync Strategy""></a></h1><p>Template Sync Strategy описывает процесс, при котором приложение создаётся от шаблона и дальше регулярно получает обновления шаблона без ручного копирования файлов.</p><p>Основной маршрут:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>templates/master -> template -> sync/* -> master</span></span></code></pre></div><p>Где:</p><ul><li><code>templates/master</code> — основная ветка внешнего репозитория шаблона.</li><li><code>template</code> — чистый слепок шаблона внутри репозитория приложения.</li><li><code>sync/*</code> — временная ветка, где шаблон накладывается на приложение.</li><li><code>master</code> — основная ветка приложения.</li></ul><h2 id="задача" tabindex="-1">Задача <a class="header-anchor" href="#задача" aria-label="Permalink to "Задача""></a></h2><p>Шаблон хорошо решает старт проекта: приносит CI/CD, Dockerfile, зависимости, линтер, сборку, структуру и базовую документацию. Но после старта приложения расходятся: где-то обновили CI, где-то забыли, где-то сделали локальную кастомизацию.</p><p>Стратегия нужна, чтобы шаблон оставался общей технической базой не только в первый день проекта, но и на всём жизненном цикле приложения.</p><h2 id="главныи-принцип" tabindex="-1">Главный принцип <a class="header-anchor" href="#главныи-принцип" aria-label="Permalink to "Главный принцип""></a></h2><p>Ветка <code>template</code> должна оставаться чистым слепком оригинального шаблона.</p><p>В неё нельзя коммитить изменения приложения и нельзя решать конфликты. Все конфликтные решения выполняются только во временных ветках <code>sync/*</code>.</p><h2 id="состав-документации" tabindex="-1">Состав документации <a class="header-anchor" href="#состав-документации" aria-label="Permalink to "Состав документации""></a></h2><ul><li><a href="./concepts/why">Зачем это нужно</a> — какие проблемы появляются без update-flow.</li><li><a href="./concepts/model">Модель веток</a> — роли <code>templates/master</code>, <code>template</code>, <code>sync/*</code> и <code>master</code>.</li><li><a href="./concepts/rules">Правила процесса</a> — ограничения, которые удерживают схему чистой.</li><li><a href="./setup/clean-repository">Новый проект от шаблона</a> — старт приложения с правильной историей.</li><li><a href="./setup/existing-master-migration">Миграция существующего master</a> — одноразовое связывание несвязанных историй.</li><li><a href="./workflows/update-template">Обычное обновление шаблона</a> — регулярный рабочий процесс.</li><li><a href="./workflows/resolve-conflicts">Решение конфликтов</a> — где и как совместить шаблон с приложением.</li><li><a href="./workflows/review-and-merge">Review и merge</a> — как доставлять sync-ветку в <code>master</code>.</li><li><a href="./reference/cheatsheet">Памятка</a> — короткий набор команд.</li><li><a href="./reference/troubleshooting">Troubleshooting</a> — типовые ошибки и диагностика.</li><li><a href="./reference/glossary">Глоссарий</a> — основные термины.</li></ul>',15)])])}const f=a(o,[["render",i]]);export{h as __pageData,f as default};
|