Reconcile Versions (Data Management)

Summary

Reconciles a version or multiple versions with a target version.

Learn more about how to reconcile and post versions

Usage

  • The reconcile process requires that you are the only user currently editing the version and the only user who will edit the version throughout the reconcile process until you save or post.

  • The reconcile process requires that you have full permissions to all the feature classes that have been modified in the version being edited.

  • Versioning tools work with enterprise geodatabases. File geodatabases do not support versioning.

  • This tool supports reconcile/post for data published from a branch workspace with version management capabilities enabled. Reconcile/post for branch versioning via a geodatabase connection file is not supported.

  • The geodatabase is designed to efficiently manage and support long transactions using versions.

  • The reconcile process detects differences between the edit version and the target version and flags these differences as conflicts. If conflicts exist, they should be resolved.

  • After running the reconcile process successfully with the Reconcile all versions option, all versions in the geodatabase will appear the same.

Syntax

ReconcileVersions(input_database, reconcile_mode, {target_version}, {edit_versions}, {acquire_locks}, {abort_if_conflicts}, {conflict_definition}, {conflict_resolution}, {with_post}, {with_delete}, {out_log}, {proceed_if_conflicts_not_reviewed}, {reconcile_checkout_versions})
ParameterExplanationData Type
input_database

The enterprise geodatabase that contains the versions to be reconciled. The default is to use the geoprocessing workspace environment.

For branch versioning, this will be the feature service URL (that is, https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer).

Workspace
reconcile_mode

Specifies the versions that will be reconciled when the tool is executed.

If the input is a branch workspace, the only valid option for this parameter is to reconcile all versions.

  • ALL_VERSIONSReconciles edit versions with the target version. This is the default.
  • BLOCKING_VERSIONSReconciles versions that are blocking the target version from compressing. This option uses the recommended reconcile order.
String
target_version
(Optional)

The name of any version in the direct ancestry of the edit version, such as the parent version or the default version.

It typically contains edits from other versions that you want included in the edit version.

If the input is a branch workspace, the only valid option for this parameter is to reconcile with the default version.

String
edit_versions
[edit_versions,...]
(Optional)

The name of the edit version or versions to be reconciled with the selected target version. This can be an individual version name or a list of version names.

String
acquire_locks
(Optional)

Specifies whether feature locks will be acquired.

  • LOCK_ACQUIREDLocks will be acquired during the reconcile process. Use this option when the intention is to post edits. It ensures that the target version is not modified in the time between the reconcile and post operations. This is the default.
  • NO_LOCK_ACQUIREDLocks will not be acquired during the reconcile process. This allows multiple users to reconcile in parallel. Use this option when the edit version will not be posted to the target version because there is a possibility that the target version may be modified in the time between the reconcile and post operations.
Boolean
abort_if_conflicts
(Optional)

Specifies whether the reconcile process will be aborted if conflicts are found between the target version and the edit version during the reconcile process.

  • NO_ABORTThe reconcile will not be aborted if conflicts are found. This is the default.
  • ABORT_CONFLICTSThe reconcile will be aborted if conflicts are found.
Boolean
conflict_definition
(Optional)

Specifies whether the conditions required for a conflict to occur are defined by object (row) or by attribute (column).

  • BY_OBJECTAny changes to the same row or feature in the parent and child versions will conflict during reconcile. This is the default.
  • BY_ATTRIBUTEOnly changes to the same attribute (column) of the same row or feature in the parent and child versions will be flagged as a conflict during reconcile. Changes to different attributes will not be considered a conflict during reconcile.
String
conflict_resolution
(Optional)

Specifies the resolution if a conflict is detected.

If the input is a branch workspace, the default is to favor the edit version.

  • FAVOR_TARGET_VERSIONAll conflicts will be resolved in favor of the target version. This is the default for traditional versioning.
  • FAVOR_EDIT_VERSIONAll conflicts will be resolved in favor of the edit version. This is the default for branch versioning.
String
with_post
(Optional)

Specifies whether the current edit session will be posted to the reconciled target version.

  • NO_POSTThe current edit version will not be posted to the target version after the reconcile. This is the default.
  • POSTThe current edit version will be posted to the target version after the reconcile.
Boolean
with_delete
(Optional)

Specifies whether the reconciled edit version will be deleted after posting. This parameter only applies if the with_delete parameter is set to POST.

  • DELETE_VERSIONThe current edit version that was reconciled will be deleted after being posted to the target version.
  • KEEP_VERSIONThe current edit version that was reconciled will not be deleted. This is the default.
Boolean
out_log
(Optional)

The name and location where the log file will be written. The log file is an ASCII file containing the contents of the geoprocessing messages.

File
proceed_if_conflicts_not_reviewed
(Optional)

Specifies whether the reconcile will proceed if there are unreviewed conflicts that exist before starting the reconcile process. If you choose to proceed, outstanding conflicts from previous sessions will be lost upon tool execution. This parameter is only applicable to branch versioning.

  • PROCEEDThe reconcile process will proceed if outstanding conflicts have not been reviewed. This is the default.
  • NOT_PROCEEDThe reconcile process will not proceed if outstanding conflicts that have not been reviewed are detected.
Boolean
reconcile_checkout_versions
(Optional)

Specifies whether the reconcile will include checkout replica versions. If you are creating a checkout replica as part of a geodatabase replication workflow, an associated version is created in the geodatabase. This option allows you to include or remove these types of versions from the list of versions to be reconciled. This parameter is not applicable for branch versioning.

  • RECONCILEThe reconcile process will include checkout replica versions. This is the default.
  • DO_NOT_RECONCILEThe reconcile process will not include checkout replica versions.
Boolean

Derived Output

NameExplanationData Type
out_workspace

The updated input workspace.

Workspace

Code sample

ReconcileVersions example (stand-alone script)

The following stand-alone script demonstrates how to use the ReconcileVersions tool to reconcile all versions owned by the user specified in the database connection file.

# Name: ReconcileVersions.py
# Description: Reconciles all versions owned by a user with SDE.Default

# Import system modules
import arcpy, os

# Set workspace
workspace = 'C:/Data/connections/bender@production.sde'

# Set the workspace environment
arcpy.env.workspace = workspace

# Use a list comprehension to get a list of version names where the owner
# is the current user and make sure sde.default is not selected.
verList = [ver.name for ver in arcpy.da.ListVersions() if ver.isOwner
           == True and ver.name.lower() != 'sde.default']

arcpy.ReconcileVersions_management(workspace,
                                   "ALL_VERSIONS",
                                   "SDE.Default",
                                   verList,
                                   "LOCK_ACQUIRED",
                                   "NO_ABORT",
                                   "BY_OBJECT",
                                   "FAVOR_TARGET_VERSION",
                                   "NO_POST",
                                   "KEEP_VERSION",
                                   "c:\RecLog.txt")
print('Reconciling Complete')

Environments

Licensing information

  • Basic: No
  • Standard: Yes
  • Advanced: Yes

Related topics