删除会话阶段
在详细描述命令及其子命令之前,下图提供了删除会话阶段的概述:
删除会话阶段
| 在删除会话期间,您可以随时运行 --status 子命令来确定删除会话的状态。 |
1. “标记”阶段指定待删除的新候选项目或存档。该阶段在开始 (以及后续的删除会话) 之前先使用 --mark 子命令来指定要删除的对象。指定项目后,--mark 子命令会确定哪些对象将成为删除目标 (要删除的项目或存档) 以及哪些对象将保留为候选项。
| PTC RV&S 服务器一次只支持一个删除会话,无法通过第二次调用 --mark 子命令来添加其他目标。 |
保留的候选项是指由于以下原因之一未被删除的子项目或成员:
◦ 子项目或成员不位于任何指定项目的目录树中。
◦ 您对指定项目或其开发路径没有 DeleteProject 权限。
◦ 您对指定成员存档或受影响的成员存档没有 DeleteArchive 权限。
◦ 您使用了 --nodeleteIfInUse 选项,项目被外部链接参考。该链接可能表示,项目是未指定删除会话的项目中的共享子项目。链接还包括每个过去或当前的子项目,以及指定项目的每个分支的成员存档 (主线、变型或已删除的变型)。
◦ 您使用了 --nodeleteIfInUse 选项,成员被外部链接参考。该链接可能指向另一个项目中参考的任何修订版本。
| 如果日后您恢复已删除的项目,则保留的候选项不会保持与已恢复项目的链接。 |
当所有候选项都转换为保留的候选项或删除目标时,“标记”阶段即完成。此时,您可以使用 --status 子命令查看有关删除目标和保留的候选项的信息。
| 所有删除目标都被服务器标记,用户无法更改,也无法添加指向它们的链接。可以复制现有链接 (例如创建开发路径),因为这不会改变 --mark 的结果。保留的候选项不受限制。 已标记的项目 (及其成员) 无法使用除 si deleteproject 外的命令进行修改。例如,您不能检入已标记项目的成员。标记后,如果项目或成员需要修改才能删除,则必须先执行回滚。 |
2. 转储阶段使用 --dump 子命令在数据库中创建已标记项目的备份。如果项目被标记,该命令会以递归方式在数据库的备份表中创建项目和存档的备份 (转储项目和存档)。但是,该子命令不会备份这些项目参考的所有成员、子项目和变型,而是仅备份树内对象。
| 在执行之前的任何阶段,您可以运行 --rollback 子命令,以放弃目标信息并结束删除会话,数据库会保持不变。子命令完成后,您可以使用 --mark 子命令开始新的删除会话。 |
| Dump 阶段无法使用 si deletearchive 命令。使用此命令将删除存档且不会创建备份。存档备份 (和恢复) 不适用于单个存档;仅适用于包含存档的项目。如果您需要存档备份,请使用 si deleteproject 命令。 |
或者,在不使用 si deleteproject --dump 的情况下,可以使用 si migrate --dumpToBackup projectList 将项目复制到备份架构中,其中 projectList 是一系列项目。
3. 执行阶段会删除标记阶段中确定的所有删除目标,断开指向已删除对象的链接,并结束删除会话。使用 --commit 子命令开始执行阶段。