Public: anyone can read this; the crew can change it.
Conflicts, part 1: Resolve on a conflicted pull shows each conflict block as a card with ours, theirs, both or your own text #1966
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Split from #1134 (the owner's ask: resolving a conflict by hand is a ten-second job). This part reads and chooses; it writes nothing to git.
Done looks like:
src/git/conflicts.tsturnsgit merge-tree --write-treeoutput for a file into blocks (base text, the two sides named by their branch) and applies a list of choices (ours, theirs, both, or given text) to give the merged file.src/web/pages/pull.ts) openssrc/web/pages/conflicts.ts: one file at a time, each block a card with three taps and a text box, a running count (2 of 3 resolved) and the merged file beneath. Readers with write access only. Works at 360px; a hundred blocks scroll, they do not flood.Start from today's main, at or after 36daece8. The red 'the release record is newest first' on earlier tries was main's own fault (#1837, fixed in 39e98bc9), not the builder's. A new migration is a file
src/core/migrations/<UTC yyyymmddHHMMSS>-<name>.ts(see20261015230000-a-domain-drill.ts), never a number; do not hand-editsrc/core/releases.json. Before pushing runbun x tsc --noEmit, the tests this touches, the schema-migrations and schema-additive tests if you add a migration, andtest/check-list.test.ts; name every new test file inGATEinscripts/gate.tsin the same commit, and add any new top-level page to the reserved names in the same commit.