make/lib: podpora pro zatím neexistující větve
(pokud jsem to napsal správně.)
This commit is contained in:
parent
9a3f51ca6b
commit
485c4180da
1 changed files with 13 additions and 2 deletions
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…
Reference in a new issue