IVersionEdit3 Interface

Provides access to members that return information about versions and posting of versions.


The IVersionEdit3interface is used to reconcile a version with a target version and optionally not obtain version locks during the process and abort the reconcile process if conflicts are detected. An application would consume this interface when the intention is to abort the reconcile process when any conflicts are detected. An example of such an application would be a type of "batch" program that performed reconcile and post. Since a user cannot resolve conflicts at the end of the process, it simply saves resources and time to abort the process once conflicts are detected.

If the Boolean argument to abort conflicts is set to true and conflicts are detected, the application should immediately stop the edit session and not save the changes.

Note: If the lock is not obtained, the version can still be posted, but there will be no guarantee that the target version has not been modified and saved since the reconcile completed. In this case, an FDO_E_VERSION_REDEFINEDerror will be raised informing you that the version has been redefined. This error implies that you will need to re-execute the reconcile. If the intent is to post following a successful reconcile it is recommended that version locks are obtained.


Name Description
Method CanPost Returns a boolean if the version can be posted to the reconcile version.
Read-only property CommonAncestorVersion The common ancestor of this version and the reconcile version.
Read-only property ConflictClasses All objects which contain conflicts between the current and reconciled versions.
Read-only property ModifiedClasses All objects modified by the current and reconciled versions.
Method Post Posts the current version to the reconciled version.
Read-only property PreReconcileVersion The version prior to reconciliation.
Method Reconcile Reconciles the current version with a target version.
Method Reconcile2 Reconciles the current version with a target version.
Method Reconcile3 Reconciles the current version with a target version.
Read-only property ReconcileVersion The version that the current version is reconciling against.
Read-only property StartEditingVersion The version prior to any edits.

IVersionEdit3.Reconcile3 Method

Reconciles the current version with a target version.

Public Function Reconcile3 ( _
    ByVal VersionName As String, _
    ByVal acquireLock As Boolean, _
    ByVal abortIfConflicts As Boolean _
) As Boolean
public bool Reconcile3 (
    string VersionName,
    bool acquireLock,
    bool abortIfConflicts

Errors Returned

FDO_E_RECONICLE_VERSION_NOT_AVAILABLE: Unable to reconcile: the target version is currently being reconciled against.

FDO_E_VERSION_BEING_EDITED: Operation not allowed while the version is being edited.

FDO_E_VERSION_NOT_FOUND: The version could not be located.


The Reconcile3 function reconciles the current edit version with the specified target version. The target version must be an ancestor of the current version or an error will be returned. The target version name passed in is case-sensitive and should take the form {owner}.{versionname} for example, SDE.DEFAULT. The first Boolean argument _acquireLock specifies if locks should be obtained or not - true acquires the lock, false does not acquire the locks. The second Boolean argument abortIfConflicts specifies if the reconcile process should abort the reconcile if conflicts are detected for any class. Ideally, abortIfConflicts is only set to true when performing a reconcile in a automated batch type environment where a user does not have the ability to interactively resolve conflicts.If the returned Boolean value from Reconcile3 is TRUE, then conflicts were detected. Otherwise no conflicts were detected.

A reconcile can only be performed if no other users are currently editing the version. As well, the target version cannot concurrently be reconciling by a second application. See IVersion::IVersionLocks for additional information on detecting version locks.The Reconcile3 method provides the ability to either acquire or not acquire the version locks during the reconcile process. If the locks are not acquired the version is able to be reconciled in parallel when other versions are currently being reconciled. One may desire this functionality when there is no intention of posting the version after the reconcile process. If the intention is to "post" the version after performing the reconcile, it is strongly recommended that the locks are acquired.If one does attempt to post after performing the reconcile, there is a chance that the target version might have been modified since the reconcile - in this case, the version will have to be re-reconciled. Therefore, the first reconcile is a waste of server and client system resources.

Calling Reconcile will abort the current edit operation therefore any edits made within an open edit operation when reconcile is called will be lost. If there is an open edit operation it is good practice to call StopEditOperation prior to calling Reconcile

Inherited Interfaces

Interfaces Description
IVersionEdit2 Provides access to members that return information about versions and posting of versions.
IVersionEdit Provides access to members that return information about versions and posting of versions.

Classes that implement IVersionEdit3

Classes Description

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.