- Тег pre-rebrand-all-market на дорибрендинговом main (c8c0be5), запушен.
- docs/rebrand-all-market-progress.md — план и границы (что НЕ трогаем).
- docs/rebrand-rollback.md — точные команды отката кода (revert-диапазон) и стенда.
- deploy/rebrand-rollback.sh — dry-run по умолчанию, --apply для реального отката.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
59 lines
2.4 KiB
Bash
Executable file
59 lines
2.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
||
# Откат ребрендинга ALL MARKET → Food Market.
|
||
# По умолчанию dry-run (печатает план). С --apply реально откатывает:
|
||
# 1) git revert диапазона pre-rebrand-all-market..HEAD (сохраняет историю),
|
||
# 2) пересборка+редеплой стенда (~/deploy-stage.sh).
|
||
# Публичный сайт (Astro) откатывается отдельно — см. docs/rebrand-rollback.md.
|
||
set -euo pipefail
|
||
|
||
TAG="pre-rebrand-all-market"
|
||
APPLY=0
|
||
[[ "${1:-}" == "--apply" ]] && APPLY=1
|
||
|
||
cd "$(dirname "$0")/.."
|
||
REPO="$(pwd)"
|
||
|
||
if ! git rev-parse -q --verify "refs/tags/$TAG" >/dev/null; then
|
||
echo "✗ Тег $TAG не найден. Нечего откатывать (или тег не создан)." >&2
|
||
exit 1
|
||
fi
|
||
|
||
RANGE="$TAG..HEAD"
|
||
COMMITS="$(git log --oneline "$RANGE" 2>/dev/null || true)"
|
||
COUNT="$(git rev-list --count "$RANGE" 2>/dev/null || echo 0)"
|
||
|
||
echo "── Откат ребрендинга ALL MARKET → Food Market ──"
|
||
echo "Репозиторий: $REPO"
|
||
echo "Якорь (тег): $TAG = $(git rev-parse --short "$TAG")"
|
||
echo "Диапазон отката: $RANGE (коммитов: $COUNT)"
|
||
echo "Коммиты диапазона:"
|
||
echo "${COMMITS:- (пусто — откатывать нечего)}" | sed 's/^/ /'
|
||
echo
|
||
|
||
if [[ "$COUNT" -eq 0 ]]; then
|
||
echo "Нет коммитов после тега — откат не требуется."
|
||
exit 0
|
||
fi
|
||
|
||
CMD_REVERT="git revert --no-edit $RANGE && git push origin main"
|
||
CMD_DEPLOY="$HOME/deploy-stage.sh"
|
||
|
||
if [[ "$APPLY" -eq 0 ]]; then
|
||
echo "DRY-RUN. Будет выполнено (запусти с --apply):"
|
||
echo " 1) $CMD_REVERT"
|
||
echo " 2) $CMD_DEPLOY # пересборка+редеплой стенда api+web"
|
||
echo
|
||
echo "Жёсткая альтернатива кода (переписывает историю, только по согласованию):"
|
||
echo " git reset --hard $TAG && git push --force-with-lease origin main"
|
||
exit 0
|
||
fi
|
||
|
||
echo "APPLY: выполняю откат…"
|
||
echo "→ git revert --no-edit $RANGE"
|
||
git revert --no-edit "$RANGE"
|
||
echo "→ git push origin main"
|
||
git push origin main
|
||
echo "→ $CMD_DEPLOY"
|
||
"$HOME/deploy-stage.sh"
|
||
echo "✓ Откат кода и стенда выполнен. Публичный сайт откати отдельно."
|