This interface must be implemented on items that support versioning.
For a list of all members of this type, see IVersionableItem Members.
By default items in the repository are not under version control. When item is being put under version control engine calls PutUnderVersionControl method passing true as a parameter. In your PutUnderVersionControl implementation you must create a new version. The content and properties of the new version must be copied from this item. After the call to PutUnderVersionControl VersionHistory property must point to the object implementing IHistory interface that will contain single version. The CheckedOut property must return false.
If item is under version control it mast always have at last one version in its versions list.
After the item had been put under version control client can issue checkout command. In your CheckOut implementation you will mark item as checked-out and allow item modifications. When item is in check-out state WebDAV client can issue commands updating item contents and properties.
Finally client issues check-in command or discards changes issuing uncheck-out command. In your CheckIn implementation you will create a new version. The content and properties of the new version must be copied from this item. The item must be marked as checked-in. In your UnCheckOut implementation you will discard changes and restore pre-checkout state. Content and properties must be copied from current version to this item. The item must be marked as checked-in.
The typical versioning workflow:
In your UpdateToVersion implementation you will create a new version and copy content and properties from IVersion passed as a parameter to new version. You will also replace content and properties of this item. The new created version becomes current version. The UpdateToVersion method can only be called when item is in check-in state.
When item is being removed from version control engine calls PutUnderVersionControl method passing false as a parameter. In your implementation you will usually delete all versions. VersionHistory property must return null after this call.
Namespace: ITHit.WebDAV.Server.DeltaV
Assembly: ITHit.WebDAV.Server (in ITHit.WebDAV.Server.dll)
IVersionableItem Members | ITHit.WebDAV.Server.DeltaV Namespace