chore(metodo): cuatro filos del working tree compartido
El indice te hace arrastrar lo ajeno; --amend te hace reescribirlo; y git status NO ve los commits sin empujar — son dos comprobaciones y ninguna implica a la otra. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
1e6eeb2fd9
commit
b1301bbc91
@ -1,4 +1,4 @@
|
|||||||
a887b492ea9c1b760172bd25ea4d1a79cb9f4f096b5115b45712916ce774623d metodo.md
|
fd01f9f41dfbe394fcf94dbda8f9fcaf35bae1368755b7e9c47a9c9c1d35f1ec metodo.md
|
||||||
c8b7746c26471b6b041abbea1583d2bf6e5b13020df63ca1b9503fa0b4757ec3 bin/metodo
|
c8b7746c26471b6b041abbea1583d2bf6e5b13020df63ca1b9503fa0b4757ec3 bin/metodo
|
||||||
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
||||||
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
||||||
|
|||||||
@ -908,6 +908,34 @@ correcto** — lo que está mal es **a quién, o desde cuándo, se refiere**.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
⛔ **UN ARTEFACTO QUE DEBE REFLEJAR EL TRABAJO Y NO ESTÁ EN EL RITUAL DE CIERRE DEJA DE CRECER AL
|
||||||
|
RITMO DEL TRABAJO — EN SILENCIO.** No se rompe, no avisa: simplemente **se queda en la fecha del
|
||||||
|
último día en que alguien se acordó**.
|
||||||
|
*(Medido 2026-08-31: en un frente que entrega a un tercero, el entregable tenía medidas de las
|
||||||
|
familias construidas **hasta el 27-ago y ninguna posterior**. **No eran diez olvidos**: una familia se
|
||||||
|
daba por cerrada cuando el rol la aplicaba y el auditor la veía verde, y **el entregable no estaba en
|
||||||
|
ese ciclo** ⇒ cada familia nueva abría un hueco nuevo. Y en el mismo día, otro frente: la mitad de una
|
||||||
|
tarea **construida** y **su backlog sin saberlo**.)*
|
||||||
|
⇒ **El gesto que lo cierra es nominal y decidible**: algo **no está cerrado hasta que declara qué ha
|
||||||
|
producido aguas abajo**, y **lo declarado se cuenta e imprime**. Una unidad cerrada que **no declara
|
||||||
|
nada, enrojece**.
|
||||||
|
⚠️ **Y lo que ese gate NO puede hacer, dicho por delante**: **comprobar que lo declarado diga la
|
||||||
|
verdad**. Eso lo hace una persona leyendo — *medido: los dos automatismos que se probaron **mienten en
|
||||||
|
direcciones opuestas**, uno sobre-reporta y otro sub-reporta*. ⇒ Se ata **que exista la declaración**,
|
||||||
|
no que sea cierta, **y se dice**.
|
||||||
|
|
||||||
|
⛔⛔ **Y LA ASIMETRÍA QUE LO EXPLICA: EL CORPUS ES BUENO REGISTRANDO PROBLEMAS Y MALO REGISTRANDO QUE
|
||||||
|
SE RESOLVIERON.** Escribir un problema **está motivado** —duele, molesta, bloquea—; escribir que se
|
||||||
|
arregló **no lo está**, porque el dolor ya paró. ⇒ **Lo que se queda rancio no es lo que empeoró: es
|
||||||
|
lo que MEJORÓ.**
|
||||||
|
*(Medido el mismo día, en tres frentes y en el propio gobierno del árbol: un aviso decía que un banco
|
||||||
|
vivía en un scratchpad **del que ya había salido**; un pendiente declaraba certificados RSA que
|
||||||
|
**llevaban dos días siendo ECDSA**; y cuatro premisas del corpus raíz quedaron falsas **el día que el
|
||||||
|
árbol pasó a ser un repo git** — las cuatro por una mejora, ninguna por un fallo.)*
|
||||||
|
⛔ **Y en un entregable eso es peor de lo que suena: un pendiente rancio es una DEBILIDAD DECLARADA QUE
|
||||||
|
NO EXISTE**, e invita a quien lo lea a hurgar en algo ya resuelto. ⇒ **Al cerrar algo, la pregunta no
|
||||||
|
es sólo «¿lo apunto?», es «¿qué documento afirma hoy un problema que acabo de quitar?»**
|
||||||
⛔ **UN INCREMENTO SIN DECLARAR ES INDISTINGUIBLE DE UNA DERIVA.** Un repo puede necesitar documentos
|
⛔ **UN INCREMENTO SIN DECLARAR ES INDISTINGUIBLE DE UNA DERIVA.** Un repo puede necesitar documentos
|
||||||
que el Método no prevé —nacen de **lo que ese frente entrega**, y eso no se deduce del Método—; pero
|
que el Método no prevé —nacen de **lo que ese frente entrega**, y eso no se deduce del Método—; pero
|
||||||
si no están declarados en ningún sitio, **quien mire ese corpus mañana no puede saber si es «tiene un
|
si no están declarados en ningún sitio, **quien mire ese corpus mañana no puede saber si es «tiene un
|
||||||
@ -1857,6 +1885,27 @@ pega tal cual.
|
|||||||
sesiones, y **cuesta una línea**.
|
sesiones, y **cuesta una línea**.
|
||||||
⇒ Y el sub-raíl operativo: **`git status --porcelain` ANTES de tu primer `git add`**. Si hay algo
|
⇒ Y el sub-raíl operativo: **`git status --porcelain` ANTES de tu primer `git add`**. Si hay algo
|
||||||
*staged* que no es tuyo, **no es tuyo el índice**: o esperas, o lo declaras.
|
*staged* que no es tuyo, **no es tuyo el índice**: o esperas, o lo declaras.
|
||||||
|
⛔ **Y UN CUARTO, QUE ES DE OTRA COMPROBACIÓN: `git status` NO VE LOS COMMITS SIN EMPUJAR.** Son
|
||||||
|
**dos gestos distintos y ninguno implica al otro** — `git status --porcelain` dice **qué me llevo
|
||||||
|
DENTRO del commit**; `git log origin/main..HEAD` dice **qué PUBLICO con él**. Correr el primero y
|
||||||
|
dar por hecho el segundo es publicar trabajo ajeno **con el índice limpio**.
|
||||||
|
*(Cicatriz 2026-08-31: una sesión corre la puerta del índice —limpia— y empuja **un solo fichero
|
||||||
|
suyo**… publicando de paso **tres commits de otra sesión** que esperaban entre el remoto y `HEAD`.
|
||||||
|
Su diagnóstico, que es el raíl: **lo dio por hecho porque veinte minutos antes estaba a cero** — y
|
||||||
|
**un árbol compartido cambia por debajo entre dos pushes tuyos**, porque el otro **está trabajando**,
|
||||||
|
que es lo normal y no la excepción.)*
|
||||||
|
⛔⛔ **Y HAY UN TERCER FILO, EL PEOR DE LOS TRES: `git commit --amend` EN UN WORKING TREE COMPARTIDO
|
||||||
|
REESCRIBE EL COMMIT DE OTRA SESIÓN.** El índice compartido te hace **arrastrar** lo ajeno; el
|
||||||
|
`--amend` te hace **borrar y rehacer** lo ajeno — y encima lo firma con tu contenido dentro y su
|
||||||
|
mensaje fuera.
|
||||||
|
*(Cicatriz 2026-08-31: se commitea, otra sesión commitea y empuja **en el mismo working tree**, y un
|
||||||
|
`--amend --no-edit` posterior **no amplía el commit propio: reescribe el suyo**, añadiéndole un
|
||||||
|
fichero ajeno a su cambio. El `push` sale rechazado por no-fast-forward, que es **la única razón por
|
||||||
|
la que se vio**. Sin ese rechazo, la reescritura se habría publicado.)*
|
||||||
|
⇒ **Regla: en un working tree compartido, `--amend` sólo sobre un commit que sabes que es tuyo Y que
|
||||||
|
no ha salido** — y saberlo exige **mirar `git log -1` antes**, no suponer que HEAD es lo último que
|
||||||
|
escribiste tú. ⛔ **Y el rechazo del `push` NO se resuelve forzando**: se resuelve con
|
||||||
|
`git reset --soft @{u}` y recommiteando **lo tuyo solo**, que deja el commit ajeno intacto.
|
||||||
- La **representación en disco es parte del artefacto**: cuando un hash o un runtime consume el
|
- La **representación en disco es parte del artefacto**: cuando un hash o un runtime consume el
|
||||||
checkout, se fija con el repo — **eol** por `.gitattributes` y **bit de ejecución** — o el testigo
|
checkout, se fija con el repo — **eol** por `.gitattributes` y **bit de ejecución** — o el testigo
|
||||||
mide el checkout, no el contenido (una DERIVA falsa en un clone sin tocar entrena a ignorar el
|
mide el checkout, no el contenido (una DERIVA falsa en un clone sin tocar entrena a ignorar el
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user