管理分支版本冲突
当针对默认版本协调授权版本时,将发现冲突。 如果在协调操作过程中检测到冲突,最初会优先使用编辑版本来解决冲突。 如果您希望解决所有冲突,以有利于授权版本中存在的功能和属性的制图表达,则可以继续将编辑发布到默认版本。
但是,如果您想要查看冲突并可能保留功能或属性的不同表示,请查看冲突并指定要保留的制图表达。 例如,您可以查看授权版本和默认版本之间冲突的编辑,并确定默认版本中要素或属性的制图表达是否正确。
在以下情况下发生冲突:
在当前授权版本和默认版本中对同一要素进行更新。
在一个版本中(指定或默认)更新某个要素,同时在另一版本中又删除此要素。
在当前授权版本和默认版本中修改拓扑结构上相关的要素或关系类。
电信网域中冲突容器要素的包含层级在未对单个行进行更新或删除的情况下,不同版本之间存在差异。 要了解有关在电信网域中管理分组对象逻辑冲突的详细信息,请参阅使用冲突容器管理冲突。
使用冲突视图可以查看授权版本和默认版本之间的编辑冲突。 冲突视图包含 Web 要素图层中包含冲突的所有图层。 对于每个图层,冲突视图显示冲突的要素或行。
在分支版本化中,冲突保留在冲突视图访问的系统表中。 这使您可以灵活地在协调后首先检查冲突,保存 ArcGIS Pro 工程,并稍后返回使用冲突视图最终解决冲突。
注:
不要花费太多时间来检查和解决冲突,因为在执行第二次协调操作或提交操作时,任何未检查的冲突都会被清除并自动解决,以支持编辑版本。 协调或发布会删除冲突解决的历史记录。
冲突视图允许您执行以下操作:
确定处于冲突状态的字段或行。
查看冲突。
通过指定用来代替要素(行)或属性(字段)的表示以解决冲突。
将冲突标记为已查看或未查看。
完成查看和解决冲突后,如有必要,请通过将更改提交到默认版本来完成合并过程。
打开冲突视图
当版本包含冲突时,冲突视图可用。 当您与默认版本协调并发现冲突时,可以直接从收到的提示中将其打开。 如果某个版本存在需要查看的冲突,您也可以重新打开冲突视图。
要打开冲突视图,请完成以下步骤:
在版本化选项卡的数据源组中,确保从下拉菜单中选择所需 Web 要素图层数据源
。确保您已连接到正确版本。
要更改版本,请单击版本化组中的更改版本按钮
。请使用以下选项之一以打开冲突视图:
要从最后一个协调过程查看并管理现有冲突,请单击版本化选项卡上的冲突管理器按钮
。如果当前没有冲突,单击协调按钮
并完成协调过程。 如果在协调过程中发现冲突,则将显示提示,询问您是否要查看冲突。 单击是将打开冲突视图。
冲突视图可以停靠在应用程序中的任意位置,也可以定位为浮动窗口。 由此您能够同时与地图视图进行交互以提供背景并进一步浏览数据。
使用冲突视图
冲突视图列出了工程中所有地图包含冲突的所有工作空间和图层或表。 冲突按 Web 要素图层中的子图层、冲突类别(例如更新-删除,表示要素在授权版本中更新但从默认版本中删除)以及受影响要素的对象 ID 进行组织。
冲突视图包含三个用于处理冲突的主要部分。
冲突选项卡上的列表包含了包含冲突的 Web 要素图层的名称。 每个 Web 要素图层下都是包含冲突的所有子图层。 每个冲突的要素都列在每个子层下,并且要素按冲突类型分组。
例如,在下图中,Web 要素图层名称为 New construction - Phase 2 (EsriCampus)。 整个 Web 要素图层中存在 3 个冲突,如 Web 要素图层名称后面的数字所示。
此 Web 要素图层仅包含一个子图层 - EsriBuildings。 该子图层包含三个冲突。
包含冲突的三个要素由其对象 ID 表示,并根据冲突类型进行分组。 对象 ID 值为 16 的要素已从授权版本中删除,但在默认版本中进行了更新(删除-更新)。 对象 ID 值为 1633 的要素已在授权版本中更新,但从默认版本中删除。 对象 ID 值为 1631 的要素在两个版本中均已更新,但更新内容并不相同。
信息格网显示命名版本(当前)、默认版本(目标)中表示的属性和值,以及在编辑或上次协调之前的表示方式(公共祖先)。 选择列表中某一要素的对象 ID 以查看该要素的属性和值。
注:
属性字段列在信息格网的属性列中。
例如,在下图中,在冲突列表中选择了对象 ID 值为 1631 的要素。 要素已在授权版本中更新,并在默认版本中更新(更新-更新)。 所有包含冲突值的行都标记为红色。
冲突显示查看器允许您直观地比较对所选要素的几何所做的编辑。 在下图中,所选要素的几何未编辑,因此要素在冲突显示查看器中对于授权版本(当前)和默认版本(目标)显示相同。
在信息格网和冲突显示查看器中,您可以比较所选要素的以下表示形式:
当前 - 表示授权版本中要素和属性的当前状态。 这包括您所做的编辑。
目标 - 表示协调时默认版本中的要素及其属性。
公共祖先 - 表示创建授权版本时或上次协调授权版本与默认版本时的要素和属性。
请参考以下图像和表,以查看冲突视图的元素:

|
元素 |
描述 |
|---|---|
|
1 |
冲突列表 - 冲突列表部分包含冲突的所有图层和要素。 |
|
2 |
信息格网 - 信息格网部分将显示从冲突列表中选择的要素的所有表示的属性和值。 |
|
3 |
冲突显示查看器 - 冲突显示查看器是位于冲突视图底部的可扩展部分。 通过在查看器中的地图上显示所选要素,您可以比较对要素几何所做的编辑并可视化两个版本之间的冲突。 您还可以独立导航查看器中的地图并识别显示中的要素。 |
|
4 |
过滤已查看冲突 - 选中冲突列表顶部的此复选框将过滤列表,以仅显示尚未查看的冲突。 请参阅下面的将冲突标记为已审核或未审核部分,了解如何审核冲突。 |
|
5 |
红色指示器 - 行的红色指示器用于标识冲突。 例如,如果已在各版本中对要素几何进行了编辑,则会在 Shape 字段旁显示红色指示器。
|
|
6 |
显示全部 |
|
7 |
显示冲突 |
|
8 |
显示服务图层的制作者名单 - 单击此图标将打开一个对话框,其中可列出用于冲突显示查看器的底图的提供者和制作者。 |
|
9 |
冲突显示导航工具 - 可以使用以下工具来导航并控制显示的版本,以及在冲突显示窗口内进行导航:
|
冲突列表
包含冲突的所有图层以及包含冲突的每个要素均显示在冲突列表中。 此列表显示了每个 Web 要素图层和每个子图层的冲突总数。
展开
每个图层以查看每个要素的冲突类型。 这些冲突将分为以下类别:
更新-删除 - 要素已在授权版本中更新并在默认版本中删除。
删除-更新 - 要素已在授权版本中删除并在默认版本中更新。
更新-更新 - 要素已在两个版本中更新。
在冲突列表中选择单个要素的 ObjectID 后,信息格网中将显示要素的当前版本、目标版本和公共祖先版本中的字段和属性。
信息格网
在信息格网中,可以查看所选要素的属性值的不同表示。 通过使要素表示的所有属性和值处于冲突状态,您可以比较不同版本之间属性值的差异程度并决定要保留的数据的表示。 所有字段都将显示在信息格网中,并且包含版本之间存在冲突的属性值的行会出现红色指示符。
提示:
所有字段都显示在冲突视图内的信息格网中;但是,应用字段级别冲突过滤器的字段不会标识为存在冲突,也不会显示红色指示器。
冲突显示
单击冲突显示将打开或关闭冲突视图底部的冲突显示查看器部分。 当冲突显示在地图上时,借助冲突显示查看器,可以查看要素集合中的冲突,以及导航并标识显示中的要素。 显示的冲突将基于在冲突列表中选择的单个要素的对象 ID 值。
冲突显示导航工具位于冲突显示查看器下方。 这些工具包含两个下拉菜单,用于更改要比较数据的制图表达。 选项包括数据的当前、目标或共同祖先制图表达。
冲突显示查看器中的内容取决于活动地图中是否存在包含冲突的 web 要素图层,如下所述:
如果活动地图中存在图层,冲突显示将显示所有地图图层、使用地图符号系统并包括底图。
如果活动地图中不存在图层,冲突显示将仅显示冲突的图层、使用默认符号系统且不包括底图。
解决冲突
在解决冲突时,需要确定要保留的要素和属性的表示。 协调操作后,可以使用冲突视图指定要保留的表示。 请记住,在冲突视图中使用替换选项与执行编辑操作相同。
在冲突视图中,右键单击信息格网中的制图表达标题或属性值,或者右键单击冲突列表中的图层或要素,然后选择以下替换选项之一:
使用当前版本替换
使用目标版本替换
使用公共祖先版本替换

以下是可以使用替换选项解决冲突的不同级别,他们基于您在冲突视图中访问的内容:
属性替换
这发生在字段级别(在信息格网中),并且您仅为当前(指定)版本定义属性值。
要执行此操作,请右键单击信息格网中当前版本列中冲突的属性,然后单击替换选项。 要保留当前版本中表示的值,请单击替换为当前版本。 或者,您可以将当前版本中的值替换为默认版本中表达的值(替换为目标版本),或者将其替换为公共祖先表达中的值。
要素替换
这会发生在行级别。 可以将整个要素替换为当前、目标或公共祖先表达中的要素的表示。 这意味着要素的所有属性值(包括要素的几何)都将被替换。
为此,请在“冲突”列表中右键单击要素的对象 ID,然后单击相应的替换选项。
图层级别替换
要解决冲突,可以将整个子图层的当前表示替换为当前、目标或公共祖先表示。 由此即可立即替换子图层的所有冲突的要素和属性,以便快速更新和替换冲突要素。 如果在冲突列表的此图层中存在多个要素,则会将所有的要素替换为您所选择的版本。
要替换图层中的所有冲突,请右键单击“冲突”列表中的子图层名称,然后单击相应的替换选项。
完全替换 Web 要素图层
这发生在 Web 要素图层级别。 此选项会将所有冲突要素、图层和属性值替换为您选择的制图表达。
右键单击冲突列表顶部的 Web 要素图层,然后单击相应的替换选项以替换所有冲突。
合并几何
这会发生在字段级别,并专门与 Shape 属性进行关联。 仅当 Shape 字段存在冲突时,用于合并几何的选项仅在 Shape 菜单上可用。 如果两个编辑者同时编辑同一要素的几何,但不编辑该要素的同一区域,则他们可以选择通过合并几何并接受这两项编辑来解决冲突。 几何被合并后,则最终结果为包含这两个编辑器所做编辑的要素。
如果一个编辑者所做的编辑共享另一个编辑者也编辑过的区域,则它们的编辑区域会重叠。 尽管合并几何可能是一种选择,但尝试这样做将会失败,并显示以下错误消息:合并几何时出错。 无法合并这两个几何。 被编辑的区域叠置。
字段级别冲突过滤
在协调期间检测到冲突后,您可能想要将编辑内容应用至要保留的一个或一组字段。 以下示例为,进行协调时可能想要过滤出在字段上检测到的冲突:
将对不同版本的字段执行批量更新。
根据在版本中执行的编辑操作在字段中写入信息。
为了防止在默认版本和授权版本中更新相同属性时识别冲突,您可以使用添加字段冲突过滤器工具来定义要过滤冲突的字段集。 通过字段冲突过滤器,可在通过冲突检测过滤要素类时在要素类中标记一个或一组字段。 如果仅编辑应用冲突过滤器的字段,协调操作期间不会返回冲突。 仅适用于按属性定义冲突。
您可以使用 ListFieldConflictFilters ArcPy 函数来识别图层何时定义了冲突过滤器。
注:
所有字段都显示在属性列的冲突视图中;但是,应用冲突过滤器的字段不会标识为存在冲突,也不会显示红色指示器。
始终优先使用授权版本来协调分支版本化数据的冲突;带有冲突过滤器的字段包含来自授权版本的值。
您可使用移除字段冲突过滤器工具从字段中移除这些冲突过滤器。
解决与属性规则之间的冲突
属性规则可改善地理数据库数据集的编辑体验并提高数据完整性。 在执行通过属性(列)定义冲突的协调时,针对已在默认版本和授权版本中更新的要素评估立即计算或约束规则。 如果在此过程中违反了约束规则,则要素将被标记为存在更新-更新冲突。
解决与关系类之间的冲突
使用关系类有助于增强地理数据库中相关对象之间的引用完整性。 如果分支版本化数据源参与关系类,则协调过程将评估此数据的引用完整性。 如果违反了引用完整性,则参与要素将报告为冲突,并可以在冲突视图中进行查看。
从源关系类中删除要素可能会触发一条消息,以从目标关系类中删除要素。 因此,请注意替换涉及参与关系类的源要素类的冲突的结果。
下面是关系要素类之间可能出现的冲突的示例:
在默认版本中,添加目标要素并将其关联到原始类中的某个要素。
在授权版本中,删除用于关联新目标要素的同一个源要素。
协调编辑后,将在目标类上检测到“更新-更新”冲突,而在源类上检测到“删除-更新”冲突。
下面是另一个示例:
您删除与某个变压器关联的电线杆会导致关联的变压器也被删除。
同时,另一个编辑器会更改因删除与其关联的电线杆而被删除的变压器的属性。
协调编辑后,将在源类和目标类上检测出“更新-删除”冲突。
在上一个示例中,如果第二个编辑器选择使用编辑会话表示替换所有冲突,则会重新创建在编辑会话期间删除的电线杆和变压器。
将冲突标记为已查看或未查看
ArcGIS Pro 提供了一种机制来跟踪审核冲突以及如何解决冲突。
最初,在协调操作之后,所有冲突都未经审核并以粗体显示。 在您和其他审核者(如果适用)完成冲突解决后,您可以将要素标记为已审核。 那些标记为已审核的要素不再以粗体显示在冲突视图的列表中。
在多种情况下,您可以将冲突保留为未经审核:
关闭 ArcGIS Pro 前,无法完成所有冲突的检查。
在将编辑发布到默认版本之前,还有另一位审阅者需要检查您的版本中的冲突。
要指示某个要素已审核,请右键单击冲突列表中的对象 ID 值,然后单击标记为已查看。 这会消除冲突视图中该要素的粗体外观。 要指示需要进一步审核,请右键单击冲突列表中的对象 ID 值,然后单击标记为已查看。 这会导致要素在冲突视图中再次以粗体显示。
您可以通过选中冲突视图顶部的过滤已查看的冲突复选框来过滤列表,以仅显示尚未审阅的冲突。
您还可以添加审阅注释以向其他审阅者提供信息。 右键单击要素,然后单击添加查看注释,然后在添加查看注释文本框中输入文本。 要编辑现有查看注释,请右键单击要素,然后单击编辑查看注释。
注:
审阅注释将在下一次协调或提交操作时清除。