git merge のマージ戦略には resolve というものがあります。

resolve
This can only resolve two heads (i.e. the current branch and another branch you pulled from) using a 3-way merge algorithm. It tries to carefully detect criss-cross merge ambiguities and is considered generally safe and fast.

https://git-scm.com/docs/git-merge#_merge_strategies

この戦略はデフォルトの recursive と同じく 3-way merge のアルゴリズムを元にしているようなのですが、recursive と異なりどのようにして criss-cross マージの状況に対応しているのか良く分かりません。

resolve はどのようなアルゴリズムで criss-cross マージを処理しているのでしょうか?