index/weave.js:276:KB (with index/dag.js:103:~c repsOf) joins the reps a merge
stands on. When two reps carry the SAME blob — the same fix made on both
branches, a cherry-pick, a re-applied revert — the contentless JOIN keeps both
insertions live: fixture cross yields a 118-byte view for a 113-byte blob,
line 6 reads line 06 SAME SAME;, and bee diff <base> <PQ> prints +line 06
SAME SAME;, content that exists in no commit. Every diff and provenance view
over such a merge is wrong. Found in the 2026-09-18 review.
Repro: two branches applying one identical edit, merged. Dedupe reps by blob hashlet before the JOIN, and verify the produced view against the tip's own blob, falling back to the fold-the-tip-bytes branch at index/weave.js:282:KB.
weaveDiff matches each rep's REV-BLOB against the
tip's own blob hashlet and stands the view on that rep. That
verifies the view against the tip's blob in hashlet space — a
folded layer produces its own blob back — so no produce and
no extra ODB read is paid per path.-s ours merge too (the dropped side's
line rendered as an insert); the blob match fixes that leg as
well, and the repro pins the identical-edit one.