协调版本 (数据管理)

摘要

根据目标版本协调一个或多个版本。

了解有关如何协调和发布版本的详细信息

使用情况

  • 协调过程要求您是当前正在编辑版本的唯一用户,并且是整个协调过程中(直到执行保存或提交操作为止)能够编辑版本的唯一用户。

  • 协调过程要求您对正在编辑的版本中的所有已修改要素类具有全部权限。

  • 版本管理工具适用于企业级地理数据库。 文件地理数据库不支持版本管理。

  • 此工具支持对启用了版本管理功能的分支工作空间发布的数据进行协调和发布操作。 不支持使用地理数据库连接文件对分支版本化进行协调和发布操作。

  • 许可:
    ArcGIS Enterprise 11.2 或更高版本的部署中使用分支版本控制时,必须为组织成员分配 ArcGIS Advanced Editing 用户类型扩展模块的许可,才能使用此工具。

参数

标注说明数据类型
输入工作空间

包含要协调的版本的企业级地理数据库。

对于分支版本化,这将为要素服务 URL(即 https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer)或要素图层门户项目。

Workspace
协调模式

指定当工具运行时将进行协调的版本。

如果输入为分支工作空间,则此参数的唯一有效选项是协调所有版本。

  • 协调所有版本编辑版本将与目标版本进行协调。 这是默认设置。
  • 仅协调分块版本将协调阻止目标版本压缩的版本。 此选项使用建议的协调顺序。
String
目标版本
(可选)

编辑版本的任何直系版本的名称,例如父版本或默认版本。

通常情况下,它包含您希望包含在编辑版本中的其他版本的编辑内容。

如果输入为分支工作空间,则此参数的唯一有效选项是协调默认版本。

String
编辑版本
(可选)

要与所选目标版本进行协调的版本或编辑版本的名称。

仅会显示所选目标版本的直系版本。

String
获取锁
(可选)

指定是否将获取要素锁定。

如果输入为分支工作空间,则协调过程中无法获取锁定。

  • 选中 - 协调过程中将获取锁定。 当计划发布编辑内容时,可使用此选项。 确保在协调和提交操作之间的时间内没有修改目标版本。 这是默认设置。
  • 未选中 - 协调过程中不获取锁定。 此时允许多个用户平行协调。 当编辑版本不会发布到目标版本时,可使用此选项,因为目标版本可能会在协调和发布操作之间的时间内被修改。
Boolean
如果检测到冲突则中止
(可选)

指定如果协调过程中在目标版本与编辑版本之间发现冲突,是否中止协调过程。

  • 选中 - 在发现冲突时将中止协调过程。
  • 未选中 - 在发现冲突时不会中止协调过程。 这是默认设置。
Boolean
冲突定义
(可选)

指定冲突发生所需条件是由对象(行)还是属性(列)来定义。

  • 按对象定义的冲突(按行)冲突将由对象定义。 协调期间父版本和子版本中的相同行或要素发生任何更改。 这是默认设置。
  • 按属性定义的冲突(按列)冲突将由属性定义。 协调期间只有父版本和子版本中的相同行或要素的同一属性(列)发生的更改会被标记为冲突。 协调期间不同属性所发生的更改不会被视为冲突。
String
冲突解决
(可选)

规定如果检测到冲突,将使用的解决方案。

如果输入为分支工作空间,则默认优先使用编辑版本。

  • 优先使用目标版本解决冲突对于所有冲突,优先使用目标版本进行解决。 这是传统版本的默认设置。
  • 优先使用编辑版本解决冲突将优先使用编辑版本解决所有冲突。 这是分支版本的默认设置。
String
调和后发布版本
(可选)

指定当前的编辑会话是否将发布到已协调的目标版本。

  • 选中 - 协调后将当前编辑版本提交到目标版本。
  • 未选中 - 协调后不将当前编辑版本提交到目标版本。 这是默认设置。
Boolean
提交后删除版本
(可选)

规定是否在发布后删除已协调的编辑版本。 仅在已选中调和后发布版本参数时,此参数才适用。

  • 选中 - 协调后的当前编辑版本在提交到目标版本后将被删除。
  • 未选中 - 不会删除协调后的当前编辑版本。 这是默认设置。
Boolean
协调版本日志
(可选)

将写入日志文件的名称和位置。 日志文件是包含地理处理消息内容的 ASCII 文件。

File
如果检测到未经审核的冲突,则继续协调过程
(可选)

指定在开始协调过程前,如果检测到未经审核的现有冲突,是否继续进行协调。 如果继续,当工具运行时,来自之前会话的现有冲突将会丢失。 此参数仅适用于分支版本化。

  • 选中 - 如果检测到未经审核的现有冲突,将继续进行协调。 这是默认设置。
  • 未选中 - 如果检测到未经审核的现有冲突,不会继续进行协调。
Boolean
协调检出复本版本
(可选)

指定协调过程是否将包括检出复本版本。 如果在地理数据库复制工作流中创建检出复本,则将在地理数据库中创建一个关联版本。 此选项允许您在要协调的版本列表中包括或从中移除这些类型的版本。 此参数不适用于分支版本化。

  • 选中 - 协调过程将包括检出复本版本。 这是默认设置。
  • 未选中 - 协调过程将不包括检出复本版本。

Boolean

派生输出

标注说明数据类型
更新的输入工作空间

已更新的输入工作空间。

Workspace

arcpy.management.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})
名称说明数据类型
input_database

包含要协调的版本的企业级地理数据库。 默认使用地理处理工作空间环境。

对于分支版本化,这将为要素服务 URL(即 https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer)。

Workspace
reconcile_mode

指定当工具运行时将进行协调的版本。

如果输入为分支工作空间,则此参数的唯一有效选项是协调所有版本。

  • ALL_VERSIONS编辑版本将与目标版本进行协调。 这是默认设置。
  • BLOCKING_VERSIONS将协调阻止目标版本压缩的版本。 此选项使用建议的协调顺序。
String
target_version
(可选)

编辑版本的任何直系版本的名称,例如父版本或默认版本。

通常情况下,它包含您希望包含在编辑版本中的其他版本的编辑内容。

如果输入为分支工作空间,则此参数的唯一有效选项是协调默认版本。

String
edit_versions
[edit_versions,...]
(可选)

要与所选目标版本进行协调的版本或编辑版本的名称。 可以是单个版本名称或版本名称的列表。

String
acquire_locks
(可选)

指定是否将获取要素锁定。

  • LOCK_ACQUIRED协调过程中将获取锁定。 当计划发布编辑内容时,可使用此选项。 确保在协调和提交操作之间的时间内没有修改目标版本。 这是默认设置。
  • NO_LOCK_ACQUIRED协调过程中不会获取锁定。 此时允许多个用户平行协调。 当编辑版本不会发布到目标版本时,可使用此选项,因为目标版本可能会在协调和发布操作之间的时间内被修改。
Boolean
abort_if_conflicts
(可选)

指定如果协调过程中在目标版本与编辑版本之间发现冲突,是否中止协调过程。

  • NO_ABORT在发现冲突时不会中止协调过程。 这是默认设置。
  • ABORT_CONFLICTS在发现冲突时将中止协调过程。
Boolean
conflict_definition
(可选)

指定冲突发生所需条件是由对象(行)还是属性(列)来定义。

  • BY_OBJECT冲突将由对象定义。 协调期间父版本和子版本中的相同行或要素发生任何更改。 这是默认设置。
  • BY_ATTRIBUTE冲突将由属性定义。 协调期间只有父版本和子版本中的相同行或要素的同一属性(列)发生的更改会被标记为冲突。 协调期间不同属性所发生的更改不会被视为冲突。
String
conflict_resolution
(可选)

规定如果检测到冲突,将使用的解决方案。

如果输入为分支工作空间,则默认优先使用编辑版本。

  • FAVOR_TARGET_VERSION对于所有冲突,优先使用目标版本进行解决。 这是传统版本的默认设置。
  • FAVOR_EDIT_VERSION将优先使用编辑版本解决所有冲突。 这是分支版本的默认设置。
String
with_post
(可选)

指定当前的编辑会话是否将发布到已协调的目标版本。

  • NO_POST协调后不将当前编辑版本提交到目标版本。 这是默认设置。
  • POST协调后将当前编辑版本提交到目标版本。
Boolean
with_delete
(可选)

规定是否在发布后删除已协调的编辑版本。 仅在 with_post 参数设置为 POST 时,才应用此参数。

  • DELETE_VERSION协调后的当前编辑版本在提交到目标版本后将被删除。
  • KEEP_VERSION不会删除协调后的当前编辑版本。 这是默认设置。
Boolean
out_log
(可选)

将写入日志文件的名称和位置。 日志文件是包含地理处理消息内容的 ASCII 文件。

File
proceed_if_conflicts_not_reviewed
(可选)

指定在开始协调过程前,如果检测到未经审核的现有冲突,是否继续进行协调。 如果继续,当工具运行时,来自之前会话的现有冲突将会丢失。 此参数仅适用于分支版本化。

  • PROCEED如果检测到未经审核的现有冲突,将继续进行协调。 这是默认设置。
  • NOT_PROCEED如果检测到未经审核的现有冲突,不会继续进行协调。
Boolean
reconcile_checkout_versions
(可选)

指定协调过程是否将包括检出复本版本。 如果在地理数据库复制工作流中创建检出复本,则将在地理数据库中创建一个关联版本。 此选项允许您在要协调的版本列表中包括或从中移除这些类型的版本。 此参数不适用于分支版本化。

  • RECONCILE协调过程将包括检出复本版本。 这是默认设置。
  • DO_NOT_RECONCILE协调过程将不包括检出复本版本。
Boolean

派生输出

名称说明数据类型
out_workspace

已更新的输入工作空间。

Workspace

代码示例

ReconcileVersions 示例(独立脚本)

以下独立脚本演示了如何使用 ReconcileVersions 函数协调在数据库连接文件中指定的用户所拥有的所有版本。

# 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')

相关主题