Good point! I've clarified the spec
<https://github.com/braid-org/braid-spec/commit/130da883cc663d7caed8090472dcd4f73df634c8>
on merging by adding a reference to [Merge-Types].
Thank you!
On 7/22/24 8:04 PM, Pierre Chapuis wrote:
> > Any version can be recreated by first merging its parents, and then
> applying the its update onto that merger.
>
> It either means there cannot be conflicts between parents - or in
> other words that conflict resolution is deterministic, commutative
> *and* associative (like CRDTs), or that updates must always contain
> the conflict resolution of their parents like Git.
>
> That last solution also means updates can be rejected by the server if
> its history is incoherent, and comes with its own issues. The way Git
> works is that conflict resolution is always performed with human
> intervention on pull, not on push.
>
> I know Braid has answers to this (Merge Types) and you are trying to
> break up the spec here, but it is not surprising that if you have a
> spec that says "versions can have several parents and you can merge
> them" people are going to wonder how.