Browse Source

make/lib: podpora pro zatím neexistující větve

(pokud jsem to napsal správně.)
pull/19/head
Pavel "LEdoian" Turinsky 2 years ago
parent
commit
485c4180da
  1. 15
      make/lib.sh

15
make/lib.sh

@ -6,6 +6,7 @@ VENV_PATH="${VENV_PATH:-env}"
BRANCH="${BRANCH:-master}" BRANCH="${BRANCH:-master}"
REPO="${REPO:-git@gitea.ks.matfyz.cz:mam/mamweb.git}" REPO="${REPO:-git@gitea.ks.matfyz.cz:mam/mamweb.git}"
UPSTREAM_REMOTE='origin'
GIMLI='gimli.ms.mff.cuni.cz' GIMLI='gimli.ms.mff.cuni.cz'
GIMLI_LOGIN="mam-web@$GIMLI" GIMLI_LOGIN="mam-web@$GIMLI"
# Skutečné cesty, jak je vrátí `realpath` # Skutečné cesty, jak je vrátí `realpath`
@ -70,16 +71,26 @@ function safe_checkout_branch {
local SCRIPT="$0" local SCRIPT="$0"
git fetch --all git fetch --all
local UPSTREAM_BRANCH
if git rev-parse "$BRANCH@{u}" >/dev/null 2>/dev/null
then
UPSTREAM_BRANCH="$BRANCH@{u}" # Stačí symbolicky.
else
# Tohle je jediná možná záchrana.
UPSTREAM_BRANCH="$UPSTREAM_REMOTE/$BRANCH"
fi
git rev-parse "$UPSTREAM_BRANCH" || die "Vzdálená větev $UPSTREAM_BRANCH neexistuje?"
# Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. # Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží.
# Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. # Zkontrolujeme, že se nemění tahle knihovna a skript, který běží.
# `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. # `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení.
# Pozor: tohle porovnává jen verze commitnuté do gitu. Lokální změny udělají něco náhodného… # Pozor: tohle porovnává jen verze commitnuté do gitu. Lokální změny udělají něco náhodného…
if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH@{u}":make/lib.sh)" if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$REMOTE_BRANCH":make/lib.sh)"
then then
echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" echo >&2 "Změna v make/lib.sh, prosím pullni manuálně"
exit 1 exit 1
fi fi
if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$BRANCH@{u}":"$SCRIPT")" if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$REMOTE_BRANCH":"$SCRIPT")"
then then
echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" echo >&2 "Změna v $SCRIPT, prosím pullni manuálně"
exit 1 exit 1

Loading…
Cancel
Save