Description
Versioning is a highly useful feature for many applications, so we definitely should support that in Oak.
We could start by adding a basic JCR VersionManager implementation that simply implements checkin operations by copying content from a node to the respective version history under /jcr:system/jcr:versionStorage.
The next step would then be figuring out whether we want to expose such an operation directly in the Oak API, or if a separate versioning plugin and an associated validator for changes in the /jcr:system/jcr:versionStorage subtree works better.
Based on that we can then proceed to implement more of the JCR versioning features.