/** * @since 2.0 */ protected void writeRevisionDelta(InternalCDORevisionDelta revisionDelta, CDOBranch branch, long created) { CDOID id = revisionDelta.getID(); CDOBranchVersion version = revisionDelta.getBranch().getVersion(revisionDelta.getVersion()); InternalCDORevision revision = getStore().getRevisionByVersion(id, version); if (revision.getVersion() != revisionDelta.getVersion()) { throw new ConcurrentModificationException("Trying to update object " + id //$NON-NLS-1$ + " that was already modified"); //$NON-NLS-1$ } InternalCDORevision newRevision = revision.copy(); newRevision.adjustForCommit(branch, created); revisionDelta.apply(newRevision); writeRevision(newRevision); }
registerDirty(object, null); if (delta.getVersion() < oldVersion)
registerDirty(object, null); if (delta.getVersion() < oldVersion)
if (keepVersions && targetGoalDelta.getVersion() != ancestorRevision.getVersion())
if (keepVersions && targetGoalDelta.getVersion() != baseRevision.getVersion())
if (oldRevision != null) if (oldRevision.getBranch() != delta.getBranch() || oldRevision.getVersion() != delta.getVersion())
int newVersion = delta.getVersion() + 1;
public void process(IDBStoreAccessor accessor, InternalCDORevisionDelta delta, long created) { this.accessor = accessor; this.created = created; id = delta.getID(); oldVersion = delta.getVersion(); if (TRACER.isEnabled()) { TRACER.format("FeatureDeltaWriter: old version: {0}, new version: {1}", oldVersion, oldVersion + 1); //$NON-NLS-1$ } InternalCDORevision originalRevision = (InternalCDORevision)accessor.getTransaction().getRevision(id); newRevision = originalRevision.copy(); targetBranch = accessor.getTransaction().getBranch(); newRevision.adjustForCommit(targetBranch, created); newVersion = newRevision.getVersion(); // process revision delta tree delta.accept(this); if (newVersion != CDORevision.FIRST_VERSION) { reviseOldRevision(accessor, id, delta.getBranch(), newRevision.getTimeStamp() - 1); } writeValues(accessor, newRevision); }
public void process(IDBStoreAccessor accessor, InternalCDORevisionDelta delta, long created) { this.accessor = accessor; this.created = created; id = delta.getID(); branchId = delta.getBranch().getID(); oldVersion = delta.getVersion(); if (TRACER.isEnabled()) { TRACER.format("FeatureDeltaWriter: old version: {0}, new version: {1}", oldVersion, oldVersion + 1); //$NON-NLS-1$ } InternalCDORevision originalRevision = (InternalCDORevision)accessor.getStore().getRepository() .getRevisionManager().getRevisionByVersion(id, delta, 0, true); newRevision = originalRevision.copy(); newRevision.setVersion(oldVersion + 1); newRevision.setBranchPoint(delta.getBranch().getPoint(created)); // process revision delta tree delta.accept(this); long revised = newRevision.getTimeStamp() - 1; reviseOldRevision(accessor, id, delta.getBranch(), revised); writeValues(accessor, newRevision); }