The tree structure is inherently flawed for storing undos when using features like undoing within a specific region, because the new state doesn't map to any previous node on the tree.
By default, Emacs has a linear undo structure, while still allowing you to never lose history.
By default, Emacs has a linear undo structure, while still allowing you to never lose history.