diff --git a/scripts/gate-session-hygiene.sh b/scripts/gate-session-hygiene.sh index 6e962a4..179b4ec 100755 --- a/scripts/gate-session-hygiene.sh +++ b/scripts/gate-session-hygiene.sh @@ -14,11 +14,14 @@ echo "[hygiene] pruefe Working Tree..." [ -z "$(git status --porcelain)" ] || note "Working Tree nicht sauber." echo "[hygiene] STATE.md im aktuellen Branch aktualisiert?" -base=$(git merge-base HEAD main 2>/dev/null || git rev-parse HEAD~1 2>/dev/null || true) -if [ -n "$base" ]; then +base=$(git merge-base HEAD main 2>/dev/null || true) +head=$(git rev-parse HEAD 2>/dev/null || true) +if [ -n "$base" ] && [ "$base" != "$head" ]; then + # echte Divergenz (Feature-Branch): Diff gegen Abzweigpunkt git diff --name-only "$base"...HEAD | grep -q '^STATE.md$' || \ note "STATE.md im aktuellen Branch nicht aktualisiert." else + # auf main/Integration oder Root-Commit: letzten Commit pruefen git log -1 --name-only --pretty= | grep -q '^STATE.md$' || \ note "STATE.md im letzten Commit nicht angefasst." fi