在 Standard 或 Advanced 许可等级下可用。
在版本中进行编辑包括以下阶段:
- 编辑 - 创建、修改或删除要素和属性。
- 协调 - 将更改从父版本或默认版本拖到您连接的版本中。
- 查看冲突 - 如果在两个版本中编辑了相同的要素或属性,则可能出现冲突。查看冲突并决定如何解决冲突。
- 提交更改 - 将您所做的最终更改合并到您已协调的父版本或默认版本中。
以下几个部分将详细介绍此过程。
1. 编辑
连接到想要使用的版本后,您可以通过自己的数据表示在隔离环境中开始进行编辑。
了解如何连接到版本。
在分支版本化中,与版本的连接仅支持一名编辑人员或多个读取者。这意味着多个用户可以在任何给定时间读取数据,但是如果有多个用户连接到相同的版本,编辑将被锁定。如果您已经开始在分支版本中进行编辑,而其他用户尝试连接,则他们将会失败并显示错误,说明版本正在使用中。
在传统版本化中,连接同时支持多个编辑人员和读取者。连接到同一版本的其他用户不会看到您所做的任何更改,直到您保存更改时为止。
假设在您开始编辑某个版本时,另一个用户已经将编辑内容保存到同一版本。当您保存编辑内容时会发生什么? 应用程序会协调这两个版本表示。如果存在冲突,则可以通过指定优先使用编辑会话还是优先使用版本的数据库表示来解决所有冲突。解决冲突的方式有多种,既可以逐一查看冲突并使用交互式对话框手动解决这些冲突,也可以选择不保存与数据库有冲突的编辑内容,还可以选择自动覆盖数据库中的现有内容,具体采用哪种方式取决于您在 ArcGIS Pro 中设置的版本编辑选项。
注:
分支版本化不支持属性级别冲突。它只支持行级冲突。
可根据需要通过任意数量的编辑会话对版本进行编辑。完成编辑并希望将更改合并到目标版本中时,就需要执行协调。
2. 协调
协调过程发生在指定版本和目标版本之间。对于传统版本化,协调和提交操作所针对的目标版本可以是默认版本、父版本或任何其他直接原始版本。对于分支版本化,目标版本始终为默认。在您编辑版本的过程中,其他用户可能已经以一种与您的编辑内容相冲突的方式对目标版本进行了更改。协调操作将检查这些冲突。
如果目标版本已经更改,正在编辑的版本会使用目标版本中的更改进行更新。对目标版本中任何要素或记录所执行的插入、更新和删除操作应用到编辑会话时,您可能会注意到所显示的要素会发生更改。
当两个或多个用户编辑距离非常近的要素时,协调操作中即会检测到冲突。存在两种类型的冲突:
- 对于传统版本化,保存对某版本的编辑,并且该版本中的同一要素已在另一编辑会话中进行更新(或要素在某一编辑会话中得到更新,而在另一会话中则被删除)时所引发的冲突。
- 在传统版本化和分支版本化中,同一要素在目标版本和子版本中同时更新(或要素在某一版本中进行更新,而在另一个版本中被删除)时所出现的冲突。
对于大部分协调操作,不应该遇到任何冲突。这是因为在大多数组织中,项目和版本代表截然不同的地理区域。如果您和您的同事正在编辑地图的不同部分,则不会遇到冲突。
保存对传统版本的编辑时出现的冲突 - 隐式协调过程
对于第一种类型的冲突,不同的编辑者在不同的编辑会话中更改了同一传统版本地理数据库中的同一要素,或同一个要素在一个编辑会话中被删除,而在另一个编辑会话中发生更改。保存编辑内容时,应用程序会检测该版本地理数据库中编辑会话之间的所有冲突并根据选项对话框中编辑选项卡上版本管理部分的保存首选项设置来解决这些冲突。由于这一协调过程是以预先确定的设置为基础的,因此它是一个隐式过程。
协调子版本和目标版本时所产生的冲突 - 显式协调过程
单击版本化工具栏上的协调按钮显式协调子版本与其父版本时,会产生第二类冲突。
协调传统版本化数据集时,将弹出一个对话框询问您解决冲突的方式,即优先使用所编辑的版本还是优先使用目标版本。
3. 查看冲突
上述两种类型的冲突最初都是由应用程序来解决的。
也可以通过交互式对话框来逐个查看这些冲突,并在必要时做出更改。对于每个冲突,可以选择将要素恢复到它在编辑会话开始时的状态,也可以选择保持它在当前编辑会话中的状态,还可以选择用冲突编辑会话或目标版本中的要素来替换它。
注:
对于保存时在同一版本中发现的冲突,如果保存首选项设置为在任何情况下都自动保存更改,将无法查看冲突,此时会根据选项对话框编辑选项卡的版本化部分中设置的冲突规则对更改进行协调。
4. 提交更改
至此,您已经完成了协调过程,如果先前存在任何冲突,您已经查看过它们。当您准备将更改合并到目标版本时,单击版本化工具栏上的提交按钮。提交操作会首先保存您的当前编辑会话,然后将目标版本应用到当前版本。
在传统版本中,其他正在读取您所提交版本的用户在刷新他们的版本化工作空间之前,不会看到提交的结果。
提交操作无法撤消,因为对其应用更改的版本不是当前正在编辑的版本。
提交后,可在版本中继续执行进一步编辑。要将这些更改应用到目标版本,需要再次执行协调、解决冲突和提交过程。
如果提交操作标志着工程结束或您所负责的部分工作流结束,则可删除已编辑的版本。只有版本的所有者或数据库管理员(sde 或 dbo 用户)可以删除版本。