如何从 clearcase 流中删除基线?
How to remove a Baseline from a clearcase stream?
我在使用 Clearcase 时遇到问题。如果我不清楚或多余,我会提前道歉,因为我对这个 VCS 很陌生,主要来自 Git 背景,我可能不知道如何正确搜索我的问题。
我们每隔几个月就有一个应用程序的新版本(与 CC 无关,业务方面),我们每个版本都会创建一个新的 VOB 和流时间。我们有一个通用流,我们在其中交付完成版本的最后基线,添加新基线,然后将通用流的内容导出到新的 VOB 和 Stream。
我的问题是,由于仓促,我实际上交付了通用流,不是最后一个基线,而是前一个基线。最重要的是,我向通用流添加了一个全新的基线。
我需要能够传送到我的通用流中,最后一个 来自我们以前的应用程序商业版本的基线。
(我主要是在操作 Clearcase 项目资源管理器,因为我真的不知道 cleartool 命令。我尝试使用一些 CLI 解决方案但无法做到,但可能与我们的 Clearcase 服务器的方式有关是)
为了做到这一点,我尝试了:
- 删除交货 activity。但是当我尝试这样做时出现错误:"Error : Cannot remove an activity with versions in its changeset"。我试图绕过这个,用 google 帮助自己,但没能成功。恐怕这是正常的 Clearcase 行为,不能这样追求。
- 正确重新交付我们的上一个业务版本,但由于我在通用流中仓促创建的基线,它无法正常工作。
我会接受任何线索,指示线索,因为我无法找到如何正确推进此事。
提前致谢。
更简单的是:
- 向通用流传送正确的内容(在错误的内容之上)并设置新的基线
- 将之前的基线重命名为 "DO-NOT-USE" 名称
- cleartool lock -obsolete 基线,让它不可见(而不是试图删除它)
这样,您就可以恢复每个版本的连续 delivers/imports,而忘记错误的版本。
如果您在该流中创建的基线是最新的基线,并且尚未被另一个流使用(拉入变基或传送到另一个流),您应该能够删除它。
无论如何,由于您的计划是通过向此 "generic" 流提供在同一父流中创建的更新基线来向前推进,您可以向此流提供正确的基线,制作新基线,并可选择锁定以前的基线。
您可能需要注意的几个 UCM 问题:
- 如果您将基线传送到另一个流,则源基线将永久不可移除。
- ALL 交付操作交付基线。如果您不创建基线,交付操作会创建一个 "deliverbl" 基线来交付。
- 删除流非常重要或不可能。
- 删除已完成开发工作的项目通常是不可能的。
为了将来参考,删除不在基线中的 activity:
- 在命令行中描述 activity 以获取版本列表。您可能希望将输出重定向到一个文件中,以便您可以更轻松地将版本信息复制并粘贴到下一步中。要描述 activity,您需要使用“cleartool describe activity:{id}@{project VOB tag}”
- 使用“cleartool rmver -xhlink {version ID}”删除变更集中的所有版本
- 删除 activity。由于交付显然已完成,因此不应设置activity。
我在使用 Clearcase 时遇到问题。如果我不清楚或多余,我会提前道歉,因为我对这个 VCS 很陌生,主要来自 Git 背景,我可能不知道如何正确搜索我的问题。
我们每隔几个月就有一个应用程序的新版本(与 CC 无关,业务方面),我们每个版本都会创建一个新的 VOB 和流时间。我们有一个通用流,我们在其中交付完成版本的最后基线,添加新基线,然后将通用流的内容导出到新的 VOB 和 Stream。
我的问题是,由于仓促,我实际上交付了通用流,不是最后一个基线,而是前一个基线。最重要的是,我向通用流添加了一个全新的基线。
我需要能够传送到我的通用流中,最后一个 来自我们以前的应用程序商业版本的基线。
(我主要是在操作 Clearcase 项目资源管理器,因为我真的不知道 cleartool 命令。我尝试使用一些 CLI 解决方案但无法做到,但可能与我们的 Clearcase 服务器的方式有关是)
为了做到这一点,我尝试了:
- 删除交货 activity。但是当我尝试这样做时出现错误:"Error : Cannot remove an activity with versions in its changeset"。我试图绕过这个,用 google 帮助自己,但没能成功。恐怕这是正常的 Clearcase 行为,不能这样追求。
- 正确重新交付我们的上一个业务版本,但由于我在通用流中仓促创建的基线,它无法正常工作。
我会接受任何线索,指示线索,因为我无法找到如何正确推进此事。
提前致谢。
更简单的是:
- 向通用流传送正确的内容(在错误的内容之上)并设置新的基线
- 将之前的基线重命名为 "DO-NOT-USE" 名称
- cleartool lock -obsolete 基线,让它不可见(而不是试图删除它)
这样,您就可以恢复每个版本的连续 delivers/imports,而忘记错误的版本。
如果您在该流中创建的基线是最新的基线,并且尚未被另一个流使用(拉入变基或传送到另一个流),您应该能够删除它。
无论如何,由于您的计划是通过向此 "generic" 流提供在同一父流中创建的更新基线来向前推进,您可以向此流提供正确的基线,制作新基线,并可选择锁定以前的基线。
您可能需要注意的几个 UCM 问题:
- 如果您将基线传送到另一个流,则源基线将永久不可移除。
- ALL 交付操作交付基线。如果您不创建基线,交付操作会创建一个 "deliverbl" 基线来交付。
- 删除流非常重要或不可能。
- 删除已完成开发工作的项目通常是不可能的。
为了将来参考,删除不在基线中的 activity:
- 在命令行中描述 activity 以获取版本列表。您可能希望将输出重定向到一个文件中,以便您可以更轻松地将版本信息复制并粘贴到下一步中。要描述 activity,您需要使用“cleartool describe activity:{id}@{project VOB tag}”
- 使用“cleartool rmver -xhlink {version ID}”删除变更集中的所有版本
- 删除 activity。由于交付显然已完成,因此不应设置activity。