Class CDSFirstBranchRevisionTracker

  • All Implemented Interfaces:
    FirstBranchRevisionTracker

    public class CDSFirstBranchRevisionTracker
    extends Object
    implements FirstBranchRevisionTracker
    FirstBranchRevisionTracker on top of custom data storage. Uses 3 storages: root storage, rev storage, and settings change storage. Root storage: parentRootId -> settingsHash v:parentRootId -> version (parentRootId is a long, so no clash is possible) Rev storage (id computed from parentRootId, settingsHash) branch -> first seen revision in the branch Settings change storage (id computed from parentRootId, settingsHash): branch -> first seen in the branch after settings change Rev storage and settings change storage can contain different revisions for the same branch (e.g. after force push to the branch). In version=1 the version was omitted and there were no settings change storage. If version is outdated the storage is converted to current version during updateRevisions(). Keeps only one rev & settings change storage for given parentRootId.