ref:main

feat: recursive/ort three-way merge strategies #56

open Opened by cole.christensen@gmail.com

Links

No links yet.

Merge.merge_trees/4 performs a trivial three-way merge. Real git uses ort (modern default, replacing recursive) which handles criss-cross merges, rename conflicts, and content hunks more robustly.

Scope

  • Implement the ort algorithm: for criss-cross (multiple merge-bases), recursively merge the bases first.
  • Rename-aware merge: reconcile renames on both sides before content merge.
  • Content conflict markers matching git’s output.

Acceptance

  • On a fixture with criss-cross history, produces the same merged tree as git merge -s ort.
  • On a fixture with a rename conflict, reports the conflict the same way.