应仅在专用于构建的 RTC 存储库工作区(与 RTC 中的构建定义关联的存储库工作区)中创建这些快照。
作为mentioned in this thread
无法传送快照。它是流或工作区的不可变配置。它代表了您构建的内容。
您可以删除快照,它将位于构建用户的构建工作区中。
更简单的是,您可以删除/重新创建该 repo 工作区。
但不建议只删除几个快照:
快照表示构建时的 SCM 工作区。
如果更改被接受,它们将包含在此构建中,无论它是否通过,并且构建使用快照来报告更改集何时包含到构建中。
因此删除快照是不可取的,因为它会混淆构建过程以确定何时将更改集实际引入构建。
但是,我需要定期清理不再需要的数百个构建工作区,如果其中有快照,我就无法这样做
您可以列出这些快照(右键单击 repo 工作区,“显示快照”)并查看该列表中的多个快照选择是否允许您(通过所述多个选择的上下文菜单)删除它们。
或者您也可以通过相同的多选 change their ownership 至少将它们移动到一个公共的 repo 工作区(将它们转储到其中,等待更永久的解决方案)
但如果你有数百个 repos 工作区:
要在删除工作区之前删除快照,请调用以下命令:
IWorkspaceConnection.removeBaselineSet(IBaselineSetHandle baselineSet, IProgressMonitor monitor)
如果您拥有拥有快照的工作区的IWorkspaceHandle,则可以使用IBaselineSetSearchCriteria 找到所有拥有该快照的所有者(IBaselineSetSearchCriteria 具有进一步确定查询范围的方法)。
例如:
IWorkspaceHandle wsHandle = null // GET ME SOMEHOW
IWorkspaceManager workspaceManager = SCMPlatform.getWorkspaceManager(repo);
IBaselineSetSearchCriteria criteria = IBaselineSetSearchCriteria.FACTORY.newInstance();
criteria.setOwnerWorkspaceOptional(wsHandle);
List snapshotHandles = workspaceManager.findBaselineSets(criteria, MAX_TO_SHOW, null);
// snapshotHandles contains a list of IBaselineSetHandle, so you can fetch them