From 52a0813406b95f2787d9c3edff3fd8821f8c196d Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Sun, 31 May 2026 13:41:47 +0000 Subject: [PATCH] =?utf8?q?copy.sh:=20Remote-St=C3=A4nde=20aktualisieren,?= =?utf8?q?=20wenn=20kein=20Tag-Suffix=20angegeben?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Ohne Tag-Suffix-Parameter prüft das Skript vor der Aktualisierung, ob alle Branches (inkl. grundlagen/docker) einheitlich getagged sind. Fehlt einem Branch ein gemeinsames Tag, bricht das Skript mit einer Fehlermeldung ab. Liegt ein gemeinsames Tag vor, werden alle Branches per fetch+reset auf den jeweiligen origin-Stand gebracht, bevor das Kopieren beginnt. Co-Authored-By: Claude Sonnet 4.6 --- copy.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/copy.sh b/copy.sh index b5417566..ddd1d199 100755 --- a/copy.sh +++ b/copy.sh @@ -52,6 +52,41 @@ sync_to() { "${RSYNC_OPTS[@]}" . "$1" } +if [ "$TAG_SUFFIX" = "" ]; then + echo "Kein Tag-Suffix angegeben — prüfe einheitliche Tags vor der Aktualisierung auf Remote-Stände..." + + _common_suffixes="" + for i in grundlagen__docker $BRANCHES; do + declare -n _bref=$i + _suffixes=$(git tag -l "${_bref}--*" | sed "s|^${_bref}--||" | sort) + if [ -z "$_suffixes" ]; then + echo "Fehler: Branch '$_bref' hat keine Tags." >&2 + echo " Alle Branches müssen einheitlich getagged sein, bevor auf Remote-Stände aktualisiert wird." >&2 + exit 1 + fi + if [ -z "$_common_suffixes" ]; then + _common_suffixes="$_suffixes" + else + _common_suffixes=$(comm -12 <(echo "$_common_suffixes") <(echo "$_suffixes")) + if [ -z "$_common_suffixes" ]; then + echo "Fehler: Branch '$_bref' hat kein gemeinsames Tag mit allen vorhergehenden Branches." >&2 + echo " Alle Branches müssen einheitlich getagged sein, bevor auf Remote-Stände aktualisiert wird." >&2 + exit 1 + fi + fi + done + echo "Einheitliche Tags vorhanden: $(echo "$_common_suffixes" | tr '\n' ' ')" + + echo "Aktualisiere alle Branches auf Remote-Stand..." + git fetch origin + for i in grundlagen__docker $BRANCHES; do + declare -n _bref=$i + git checkout "$_bref" + git reset --hard "origin/$_bref" + done + git checkout scripting +fi + EXPECTED=$(mktemp) trap 'rm -f "$EXPECTED"' EXIT -- 2.39.5