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

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

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

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

10 lines
8.3 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as a,o as i,c as e,ae as t}from"./chunks/framework.B1nRs-GM.js";const g=JSON.parse('{"title":"Review и merge","description":"Как проверять и вливать sync-ветку с обновлением шаблона в master приложения.","frontmatter":{"title":"Review и merge","description":"Как проверять и вливать sync-ветку с обновлением шаблона в master приложения."},"headers":[],"relativePath":"workflows/review-and-merge.md","filePath":"workflows/review-and-merge.md"}'),n={name:"workflows/review-and-merge.md"};function p(l,s,h,r,d,o){return i(),e("div",null,[...s[0]||(s[0]=[t(`<div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /template-sync-strategy/workflows/review-and-merge.md for this page in Markdown format</div><h1 id="review-и-merge" tabindex="-1">Review и merge <a class="header-anchor" href="#review-и-merge" aria-label="Permalink to &quot;Review и merge&quot;"></a></h1><p>После подготовки <code>sync/*</code> ветки обновление шаблона должно попасть в <code>master</code> через PR/MR.</p><h2 id="создать-pr-mr" tabindex="-1">Создать PR/MR <a class="header-anchor" href="#создать-pr-mr" aria-label="Permalink to &quot;Создать PR/MR&quot;"></a></h2><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>source: sync/update-template-vX</span></span>
<span class="line"><span>target: master</span></span></code></pre></div><p>Цель review — увидеть:</p><ul><li>какие изменения пришли из шаблона;</li><li>какие конфликтные решения были сделаны в <code>sync/*</code>;</li><li>не попали ли в обновление лишние изменения приложения;</li><li>проходят ли проверки проекта.</li></ul><h2 id="настроики-merge" tabindex="-1">Настройки merge <a class="header-anchor" href="#настроики-merge" aria-label="Permalink to &quot;Настройки merge&quot;"></a></h2><p>Для sync-PR/MR важно:</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>squash = off</span></span>
<span class="line"><span>fast-forward merge = хорошо</span></span>
<span class="line"><span>merge commit = допустимо</span></span>
<span class="line"><span>squash merge = нельзя</span></span></code></pre></div><p>Squash нельзя использовать, потому что он может уничтожить связь истории <code>master</code> с историей <code>template</code>. Особенно это критично после миграционного <code>sync/bootstrap-template</code>.</p><h2 id="проверки-перед-merge" tabindex="-1">Проверки перед merge <a class="header-anchor" href="#проверки-перед-merge" aria-label="Permalink to &quot;Проверки перед merge&quot;"></a></h2><p>Проверьте граф истории:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-pager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> log</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --oneline</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --graph</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --decorate</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --all</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --max-count=50</span></span></code></pre></div><p>Проверьте итоговый diff:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-pager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> diff</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> origin/master...sync/update-template-vX</span></span></code></pre></div><p>Проверьте проект обычными командами конкретного приложения, например:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> lint</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span></span></code></pre></div><h2 id="после-merge" tabindex="-1">После merge <a class="header-anchor" href="#после-merge" aria-label="Permalink to &quot;После merge&quot;"></a></h2><p>После успешного merge в <code>master</code> можно удалить временную ветку:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> branch</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> sync/update-template-vX</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> push</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> origin</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --delete</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> sync/update-template-vX</span></span></code></pre></div><p>Проверьте, что <code>master</code> теперь содержит обновление шаблона:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> fetch</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> origin</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-pager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> log</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> origin/template..origin/master</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --oneline</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-pager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> diff</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> origin/template...origin/master</span></span></code></pre></div>`,24)])])}const c=a(n,[["render",p]]);export{g as __pageData,c as default};