FA-75813 / Text diff and three-way merge / Member archive
Conflict resolution reuse: base sections leak into our side · case 03
diff3-style conflicts never match recorded resolutions.
Case contract
Scan conflict blocks ("<<<<<<<" optionally followed by a label, optional "|||||||" base section, "=======", ">>>>>>>" optionally labelled). A block matches a recorded [side1, side2, resolution] when its two sides equal the recorded sides in either order; base lines are ignored. Matched blocks are replaced by the resolution; unmatched blocks are re-emitted as bare "<<<<<<<", ours, "=======", theirs, ">>>>>>>" and counted. Return lines and the unresolved count.
Why this case matters
Reusing recorded conflict resolutions saves repeating the same manual merge during rebases.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| base section does not affect the fingerprint | {"lines": ["\u003c\u003c\u003c\u003c\u003c\u003c\u003c", "c", "||||||| base", "orig", "=======", "a", "b", "\u003e\u003e\u003e\u003e\u003e\u003e\u003e"], "unresolved": 1} | {"lines": ["abc"], "unresolved": 0} | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗