When a conflict occurs, a commit is suspended until the conflicting revision becomes visible. This feature was introduced with
OAK-3042. The implementation does not distinguish between revisions that are conflicting and those that are reported as collisions. The latter just means changes happened after the base revision but may not necessarily be conflicting. E.g. different properties can be changed concurrently.
There are actually two problems:
- When a commit detects a conflict, it will create collision markers even for changes that are non conflicting. The commit should only create collision markers for conflicting changes.
- A commit with a conflict will suspend until is sees also revisions that are considered a collision but are not actually a conflict. The commit should only suspend until conflicting revisions are visible.