rules 21-22: lanes never touch the shared worktree; union-resolve is not concatenation. VM released
This commit is contained in:
parent
e9dec36d77
commit
2b7758123f
2 changed files with 26 additions and 1 deletions
File diff suppressed because one or more lines are too long
|
|
@ -245,3 +245,28 @@ gate**, where exactly one player passes on both corpus saves. A constant fitted
|
|||
is not a constant.
|
||||
|
||||
Instrument the **entry**, not just the cost.
|
||||
|
||||
## 21. A lane never touches the shared working directory — worktree or clone, always
|
||||
|
||||
Two incidents, one session. A VM lane ran `git checkout --` in the shared `sots-engine` worktree and
|
||||
discarded another lane's in-flight generated header. An AI lane ran `git checkout -b` there, which
|
||||
**moved the repo's HEAD**, so the integrator's concurrent commit landed on the lane's branch instead
|
||||
of `main` and was orphaned when that branch was deleted. Nothing was lost either time, but only
|
||||
because both lanes reported it.
|
||||
|
||||
`git worktree add` or a separate clone. This is the same failure the `addresses.d/README` documents
|
||||
for `git add`, one level up: **shared mutable state plus concurrency, with no lock.**
|
||||
|
||||
The integrator's counterpart: after any concurrent round, check `git log --oneline` on `main` before
|
||||
pushing, and confirm the commits you believe you made are the ones that are there.
|
||||
|
||||
## 22. Union-resolving a merge is not textual concatenation
|
||||
|
||||
Two independent modules both added a branch to the same `if`/`else if` chain and a file to the same
|
||||
CMake source list. Concatenating the conflict halves produced a `)` in the middle of the list and an
|
||||
`if` body with no closing brace — the host build passed (those files are Windows-only) and **the
|
||||
shim cross-build failed**, which is exactly the gap rule 13 exists for.
|
||||
|
||||
When both sides add a *member of a construct*, the resolution is to merge them **into that
|
||||
construct** — one list, one chain — not to paste one after the other. Read the resolved region
|
||||
before committing, and let the cross-build be the judge.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue