Byron / gitoxide

An idiomatic, lean, fast & safe pure Rust implementation of Git
Apache License 2.0
8.84k stars 301 forks source link

octopus-merge (part 1: tree-editing) #1566

Closed Byron closed 3 weeks ago

Byron commented 4 weeks ago

Implement an octopus merge based on trees, and (mostly) equivalent to merge-ORT in Git.

Related to https://github.com/gitbutlerapp/gitbutler/pull/4793.

Tasks

Next PR

Research

Everything is about MergeORT.

Handle Special Cases

Questions

Is git2::merge_trees() a trivial merge? Does it handle all the cases of MergeORT?

How does rename-tracking affect a tree-merge?

How is an octopus merge implemented, particularly with Merge ORT?

References