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