协调版本 (数据管理)

摘要

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

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

使用情况

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

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

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

  • 此工具支持在启用版本管理功能的情况下协调和提交从分支工作空间发布的数据。 不支持通过地理数据库连接文件来协调和提交分支版本化。

  • 许可:
    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')

许可信息

  • Basic: 否
  • Standard: 受限
  • Advanced: 受限

相关主题