76 lines
2.2 KiB
Markdown
76 lines
2.2 KiB
Markdown
|
|
---
|
|||
|
|
url: /template-sync-strategy/workflows/review-and-merge.md
|
|||
|
|
description: Как проверять и вливать sync-ветку с обновлением шаблона в master приложения.
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Review и merge
|
|||
|
|
|
|||
|
|
После подготовки `sync/*` ветки обновление шаблона должно попасть в `master` через PR/MR.
|
|||
|
|
|
|||
|
|
## Создать PR/MR
|
|||
|
|
|
|||
|
|
Параметры:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
source: sync/update-template-vX
|
|||
|
|
target: master
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Цель review — увидеть:
|
|||
|
|
|
|||
|
|
* какие изменения пришли из шаблона;
|
|||
|
|
* какие конфликтные решения были сделаны в `sync/*`;
|
|||
|
|
* не попали ли в обновление лишние изменения приложения;
|
|||
|
|
* проходят ли проверки проекта.
|
|||
|
|
|
|||
|
|
## Настройки merge
|
|||
|
|
|
|||
|
|
Для sync-PR/MR важно:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
squash = off
|
|||
|
|
fast-forward merge = хорошо
|
|||
|
|
merge commit = допустимо
|
|||
|
|
squash merge = нельзя
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Squash нельзя использовать, потому что он может уничтожить связь истории `master` с историей `template`. Особенно это критично после миграционного `sync/bootstrap-template`.
|
|||
|
|
|
|||
|
|
## Проверки перед merge
|
|||
|
|
|
|||
|
|
Проверьте граф истории:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git --no-pager log --oneline --graph --decorate --all --max-count=50
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Проверьте итоговый diff:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git --no-pager diff origin/master...sync/update-template-vX
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Проверьте проект обычными командами конкретного приложения, например:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run lint
|
|||
|
|
npm run build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## После merge
|
|||
|
|
|
|||
|
|
После успешного merge в `master` можно удалить временную ветку:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git branch -d sync/update-template-vX
|
|||
|
|
git push origin --delete sync/update-template-vX
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Проверьте, что `master` теперь содержит обновление шаблона:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git fetch origin
|
|||
|
|
git --no-pager log origin/template..origin/master --oneline
|
|||
|
|
git --no-pager diff origin/template...origin/master
|
|||
|
|
```
|