chore(metodo): reparto — C26 ya lee EXCEPCIONES (valvula que le faltaba)
C26 nacio sin la consulta a .metodo/EXCEPCIONES que C25 tiene desde el 29-ago: el primero que empujara un commit sin trailer dejaba su repo en rojo permanente. Lo encontro poniente en carne propia. Y la correccion obvia (copiar las dos lineas de C25) no habria valido: el sha de C26 es LARGO y el de C25 CORTO, asi que la consulta copiada no casa nunca y deja el gate rojo en silencio. Se compara por prefijo. Solo .metodo/ — byte a byte desde la matriz. Sesion: superadmin Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
3c1cbee9bf
commit
ff24977713
@ -1,5 +1,5 @@
|
|||||||
4cc8cf392fa0d4811058bf2013137f082c53e195ff5200d21d4992a7493e66c8 metodo.md
|
4cc8cf392fa0d4811058bf2013137f082c53e195ff5200d21d4992a7493e66c8 metodo.md
|
||||||
de8ecd52846a0b0e6bf8a83b983116e3b9796a57fe7e6b4931b2b79978f8b48c bin/metodo
|
fb7e88324524184b9f685c49c0bbcc6c9a55beb07bb5c0b1b31cd29c51c4117f bin/metodo
|
||||||
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
||||||
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
||||||
2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md
|
2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md
|
||||||
|
|||||||
@ -127,7 +127,7 @@ check_sesion_trailer() {
|
|||||||
desde=$(grep -E '^sesion_desde:' "$md/VERSION" 2>/dev/null | sed 's/sesion_desde:[[:space:]]*//')
|
desde=$(grep -E '^sesion_desde:' "$md/VERSION" 2>/dev/null | sed 's/sesion_desde:[[:space:]]*//')
|
||||||
[ -n "$desde" ] || { info "sin punto de adopción todavía — se sella en el próximo 'metodo update'"; return 0; }
|
[ -n "$desde" ] || { info "sin punto de adopción todavía — se sella en el próximo 'metodo update'"; return 0; }
|
||||||
git -C "$ROOT" cat-file -e "$desde^{commit}" 2>/dev/null || { skip "el punto de adopción $desde no existe en este repo"; return 0; }
|
git -C "$ROOT" cat-file -e "$desde^{commit}" 2>/dev/null || { skip "el punto de adopción $desde no existe en este repo"; return 0; }
|
||||||
n=0; mal=0
|
n=0; mal=0; local exc=0 excf="$ROOT/.metodo/EXCEPCIONES"
|
||||||
# ⛔ Un punto de adopción por SHA NO acota en una historia DIVERGENTE: `X..HEAD` incluye
|
# ⛔ Un punto de adopción por SHA NO acota en una historia DIVERGENTE: `X..HEAD` incluye
|
||||||
# todo lo no alcanzable desde X — incluido trabajo ANTERIOR a X hecho en otra rama, que
|
# todo lo no alcanzable desde X — incluido trabajo ANTERIOR a X hecho en otra rama, que
|
||||||
# entra al hacer merge. Medido: un repo con 14 commits ajenos por delante quedó con esos
|
# entra al hacer merge. Medido: un repo con 14 commits ajenos por delante quedó con esos
|
||||||
@ -142,10 +142,15 @@ check_sesion_trailer() {
|
|||||||
[ -n "$_fecha" ] && [ "$(git -C "$ROOT" log -1 --format=%ct "$sha")" -lt "$_fecha" ] && continue
|
[ -n "$_fecha" ] && [ "$(git -C "$ROOT" log -1 --format=%ct "$sha")" -lt "$_fecha" ] && continue
|
||||||
n=$((n+1))
|
n=$((n+1))
|
||||||
git -C "$ROOT" log -1 --format='%B' "$sha" | grep -qE '^Sesion:[[:space:]]*\S' || {
|
git -C "$ROOT" log -1 --format='%B' "$sha" | grep -qE '^Sesion:[[:space:]]*\S' || {
|
||||||
|
# ⛔ El sha de C26 viene de `rev-list` y es LARGO; el de C25 de `--format=%h` y es CORTO.
|
||||||
|
# Copiar la consulta de C25 tal cual NO casa NUNCA y el gate se queda rojo en silencio.
|
||||||
|
# ⇒ se compara por PREFIJO (>=7) para admitir las dos formas. Medido con control negativo.
|
||||||
|
if [ -f "$excf" ] && awk -v s="$sha" '$1=="C26" && length($2)>=7 && index(s,$2)==1 {f=1} END{exit !f}' "$excf"; then exc=$((exc+1)); continue; fi
|
||||||
bad "commit sin 'Sesion:' — $(git -C "$ROOT" log -1 --format='%h %s' "$sha" | cut -c1-60) (C26) — si lo hiciste A MANO, vale 'Sesion: xavier'; si aún no está empujado, un 'git commit --amend' sobre TU commit lo cierra sin excepciones"; mal=$((mal+1)); }
|
bad "commit sin 'Sesion:' — $(git -C "$ROOT" log -1 --format='%h %s' "$sha" | cut -c1-60) (C26) — si lo hiciste A MANO, vale 'Sesion: xavier'; si aún no está empujado, un 'git commit --amend' sobre TU commit lo cierra sin excepciones"; mal=$((mal+1)); }
|
||||||
done <<EOF
|
done <<EOF
|
||||||
$(git -C "$ROOT" rev-list --no-merges "$desde..HEAD" 2>/dev/null)
|
$(git -C "$ROOT" rev-list --no-merges "$desde..HEAD" 2>/dev/null)
|
||||||
EOF
|
EOF
|
||||||
|
[ "$exc" -gt 0 ] && warn "C26: ${exc} commit(s) con EXCEPCIÓN DECLARADA en .metodo/EXCEPCIONES (historia ya empujada; NO perdona lo que venga después)"
|
||||||
[ "$mal" -eq 0 ] && ok "$n commit(s) desde la adopción, todos dicen quién los hizo"
|
[ "$mal" -eq 0 ] && ok "$n commit(s) desde la adopción, todos dicen quién los hizo"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user