fix(gates): hygiene STATE-Check robust gegen Root-Commit auf main
Some checks failed
gates / quality (push) Has been cancelled
Some checks failed
gates / quality (push) Has been cancelled
merge-base HEAD main == HEAD (Root-Commit / main an der Spitze) ergab einen leeren Branch-Diff -> STATE.md faelschlich als 'nicht aktualisiert' gewertet. Jetzt: Branch-Diff nur bei echter Divergenz, sonst letzten Commit pruefen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -14,11 +14,14 @@ echo "[hygiene] pruefe Working Tree..."
|
|||||||
[ -z "$(git status --porcelain)" ] || note "Working Tree nicht sauber."
|
[ -z "$(git status --porcelain)" ] || note "Working Tree nicht sauber."
|
||||||
|
|
||||||
echo "[hygiene] STATE.md im aktuellen Branch aktualisiert?"
|
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)
|
base=$(git merge-base HEAD main 2>/dev/null || true)
|
||||||
if [ -n "$base" ]; then
|
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$' || \
|
git diff --name-only "$base"...HEAD | grep -q '^STATE.md$' || \
|
||||||
note "STATE.md im aktuellen Branch nicht aktualisiert."
|
note "STATE.md im aktuellen Branch nicht aktualisiert."
|
||||||
else
|
else
|
||||||
|
# auf main/Integration oder Root-Commit: letzten Commit pruefen
|
||||||
git log -1 --name-only --pretty= | grep -q '^STATE.md$' || \
|
git log -1 --name-only --pretty= | grep -q '^STATE.md$' || \
|
||||||
note "STATE.md im letzten Commit nicht angefasst."
|
note "STATE.md im letzten Commit nicht angefasst."
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user