Files
takana/scripts/fuentes/mirror-git-poblar.sh
T
Sergio 476168bb07 takana etapa 5c: comentarios de scripts, MOTD, y un BUG que introdujo la etapa 4
250 líneas de comentario en 151 scripts. Control verificado: el diff no toca
NI UNA línea que no empiece por #, y la sintaxis de los 151 pasa.

El barrido saltea heredocs y cadenas triples, y el guardián DISPARÓ 3 veces:
las tres eran el MOTD que el script escribe DENTRO de la imagen construida —
texto del producto, no comentario del script. Se cambiaron aparte y a
propósito, que es rebranding, no limpieza.

Y el hallazgo caro:  casaba contra ,
que es el TARGET de tracing — o sea el module_path!, o sea el nombre del crate.
La etapa 4 lo movió a  y el script quedó casando NADA. No fallaba:
imprimía cero atribuciones, indistinguible de un log sin problemas. Comprobado
con el binario (RUST_LOG=info sobre zlib), no deducido. Ahora acepta las dos, y
tiene que seguir aceptándolas porque los logs viejos en disco dicen la vieja.

Además 14 rutas de módulo  en docs, que el barrido anterior no tocó
porque  no es frontera de palabra.
2026-09-09 19:28:48 +00:00

25 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
# mirror-git-poblar.sh — espeja las fuentes GIT del corpus como bundles (ADR 0013).
#
# ── POR QUÉ BUNDLES SHALLOW Y NO CLONES COMPLETOS ──────────────────────────────────────────────
# Takana no usa la historia: lo único que hace con un repo es `git archive <commit> | tar -x`, o sea
# materializar UN árbol. Un clon `--depth 1` del commit exacto basta, y para `act` son 8,9 MB en
# lugar del repositorio entero. Con 606 fuentes git, la diferencia decide si el mirror cabe.
#
# El objeto se nombra por CONTENIDO igual que los tarballs: `takana/fuentes-git/{commit}.bundle`.
# El commit ES su verificación — git comprueba cada objeto contra su SHA al desempaquetar, así que
# un bundle alterado no pasa. No hace falta índice ni sha256 aparte.
#
# ── EL FICHERO `shallow` NO SE SUBE ────────────────────────────────────────────────────────────
# Un bundle hecho desde un repo shallow no lleva la frontera de historia, y al desempaquetarlo git
# aborta con «Failed to traverse parents». Suena a bundle incompleto y NO lo es: los objetos llegan
# enteros. La frontera de un clon `--depth 1` es exactamente el commit pedido, así que el lado que
# consume la reconstruye sola (lo hace `hidratar_desde_bundle` en fetch.rs). Nada que transportar.
#
# Uso: scripts/fuentes/mirror-git-poblar.sh # todas las que falten
# LIMITE=20 scripts/fuentes/mirror-git-poblar.sh # sólo las 20 primeras
# SOLO=mesa scripts/fuentes/mirror-git-poblar.sh # una receta concreta
set -eu
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"; cd "$ROOT"
exec python3 scripts/fuentes/mirror-git-poblar.py "$@"