如何恢复到较早的基线?我们有一个 UCM 并行开发(多流)项目。每个开发人员都有一个关于项目集成流的快照视图。开发人员希望在他们的快照视图中看到应用程序的早期版本,以便他们可以调试早期版本的应用程序以查找错误。
当我想更改现有快照视图的基础基线时,clearcase 不允许我这样做。那么我该怎么做呢?
如何恢复到较早的基线?我们有一个 UCM 并行开发(多流)项目。每个开发人员都有一个关于项目集成流的快照视图。开发人员希望在他们的快照视图中看到应用程序的早期版本,以便他们可以调试早期版本的应用程序以查找错误。
当我想更改现有快照视图的基础基线时,clearcase 不允许我这样做。那么我该怎么做呢?
由于您使用术语基线,我假设您使用的是 UCM。
在流上,您不能向后还原基线。
一种可能性是制作一个并行流,以所需的基线为基础:这是最快的方法。
在对这个新流进行更改之后,您可以进行新的 rebase 以更改基础基线,但前提是该新 rebase 使用来自父流的更新基线(而不是旧基线)
对于您的特定需要,我会推荐一个带有简单规则的非 UCM 快照视图
element * thePreviousBaseline
为了让开发者拥有:
第二个快照视图与 UCM 项目完全无关,并利用了基线的“完整”性质(请检查您的基线是否已设为“完整”,而不是“增量”。如果它是“增量” ,只需更改其类型并将其升级为完整)
因此,除了您当前的快照 UCM 视图之外,您还可以在任何需要非快照视图的位置创建:
cleartool mkview -snap -tag mylogin_myComponentname_csl_snap -vws myPathToViewStorage myPathToRootView
cd myPathToRootView
cleartool edcs
[add the selection rule: element * myOlderBaseline]
[add the load rule at the end: 'load /myVob_Including_MyComponent]
[save, type 'yes']
这对于咨询/执行来说很好,但是如果您需要修补(即我要编写、签出和在某些文件中),那么我建议每个要修补的基线一个 UCM 流。
这样,流清楚地代表了给定基线的补丁工作。它们不应该太多,除非您每五分钟将应用程序的新版本投入生产......这是不可取的;)
所以总结一下:
我解决这个问题的方法是制作另一个流,即集成流的子流。创建此 Stream 的最简单方法是打开 ClearCase Project Explorer(不是 Rational ClearCase Explorer)并导航到项目,然后是相关的 Stream。右键单击集成流并选择“创建子流...”
单击“高级选项”并为每个组件选择一个基线。通过选择组件然后选择“更改...”并选择您想要查看的特定基线来执行此操作。您可能想要选择“提示我为此流创建视图”。选择“确定”。
任何开发人员都可以做到这一点。您无需成为 VOB 所有者或项目或流所有者。
这要看情况。实际上,答案在于设置您的配置规范以指向正确的文件。您的配置规范告诉您查看哪些版本的元素。但是你如何编写它取决于你的项目对基线的方法。您是否应用了标签来标记该基线?如果是这样,并且您只想阅读而不是签出任何新内容,那么您的配置规范可以很简单
element * <LABELNAME>
如果您没有使用标签,您还可以设置配置规范以根据日期向您显示文件。您需要添加的规则越多来限制您的元素选择,它就会变得越复杂。如果您有更多细节,我可以尝试详细说明您可能需要哪些规则。否则,我会阅读 ClearCase 附带的手册。如果您从 ClearCase Explorer 查看扩展帮助,然后执行“在线查看 Rational ClearCase 手册”,它应该会为您提供一些指向命令参考的链接。每当我需要以某种新方式修改配置规范时,我都会去这里。
另外,请注意我们只使用动态视图,所以我不知道快照视图的工作方式是否不同。