Skip To Content

Reconcile Versions

Summary

Reconciles a version or multiple versions against a target version.

Usage

  • The reconcile process requires that you are the only user currently editing the version and the only user able to 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 don't support versioning.

  • This tool supports reconcile/post for branch versioning through the version service. 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 ALL_VERSIONS option, all versions in the geodatabase will appear the same.

Syntax

ReconcileVersions_management (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})
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

Determines which versions will be reconciled when the tool is executed.

If the input workspace is a branch version service, the only valid choice 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 the user performing the reconcile wants to pull into their edit version.

If the input workspace is a branch version service, the only valid choice 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)

Determines whether feature locks will be acquired.

  • LOCK_ACQUIREDAcquires locks during the reconcile process. This should be used 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_ACQUIREDNo locks are acquired during the reconcile process. This allows multiple users to reconcile in parallel. It should be used when the edit version will not be posted to the target version because there is a possibility that the target version could be modified in the time between the reconcile and post operations.
Boolean
abort_if_conflicts
(Optional)

Determines if the reconcile process should be aborted if conflicts are found between the target version and the edit version during the reconcile process.

  • NO_ABORTDoes not abort the reconcile if conflicts are found. This is the default.
  • ABORT_CONFLICTSAborts the reconcile if conflicts are found.
Boolean
conflict_definition
(Optional)

Describes the conditions required for a conflict to occur.

  • 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)

Describes the behavior if a conflict is detected.

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

  • FAVOR_TARGET_VERSIONFor all conflicts, resolves in favor of the target version. This is the default.
  • FAVOR_EDIT_VERSIONFor all conflicts, resolves in favor of the edit version.
String
with_post
(Optional)

Posts the current edit session 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)

When the post option is set to POST, the option to delete versions becomes enabled.

  • 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)

Specifies a 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)

Determines if reconcile should 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 for branch versioning.

  • PROCEEDProceeds with the reconcile process if outstanding conflicts have not been reviewed. This is the default.
  • NOT_PROCEEDDoes not proceed with reconcile if outstanding conflicts that have not been reviewed are detected.
Boolean

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 SDE 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

  • ArcGIS Desktop Basic: No
  • ArcGIS Desktop Standard: Yes
  • ArcGIS Desktop Advanced: Yes

Related topics