Description
This is similar to OAK-1198, but for the Persisted state in AbstractNodeStoreBranch. OAK-1186 describes a case when a retry of a Persisted merge would help to overcome a conflict.
Compared to OAK-1198, the situation is a bit more difficult. The Persisted.merge() method performs the following actions:
- rebase the branch
- run commit hook on the branch
- persist changes introduced by hook to the branch
- merge the branch
The problem with the current implementation is that it cannot be retried if the conflict is introduced by the commit hook and is only detected in step 4) when the branch is merged. It is currently not possible to efficiently reset the branch to a previous state. This missing feature also blocks OAK-1056.