5

如何恢复到较早的基线?我们有一个 UCM 并行开发(多流)项目。每个开发人员都有一个关于项目集成流的快照视图。开发人员希望在他们的快照视图中看到应用程序的早期版本,以便他们可以调试早期版本的应用程序以查找错误。

当我想更改现有快照视图的基础基线时,clearcase 不允许我这样做。那么我该怎么做呢?

4

3 回答 3

6

由于您使用术语基线,我假设您使用的是 UCM。

在流上,您不能向后还原基线。

一种可能性是制作一个并行流,以所需的基线为基础:这是最快的方法。


在对这个新流进行更改之后,您可以进行新的 rebase 以更改基础基线,但前提是该新 rebase 使用来自父流的更新基线(而不是旧基线)


对于您的特定需要,我会推荐一个带有简单规则的非 UCM 快照视图

element * thePreviousBaseline

为了让开发者拥有:

  • 他/她当前的 UCM 开发视图(始终设置在与流关联的分支的最新)
  • 第二个快照视图设置为他/她需要的任何基线。

第二个快照视图与 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 流
这样,流清楚地代表了给定基线的补丁工作。它们不应该太多,除非您每五分钟将应用程序的新版本投入生产......这是不可取的;)


所以总结一下:

  • 非 UCM 快照视图是独一无二的,可用于一次快速咨询/调试一个较旧的基线。
  • 对于补丁(源代码修改),您创建一个正确命名的并行流,具有正确的基础基线,然后在其上创建一个 UCM 视图。您不仅可以调试还可以修复活动中的一些错误,如果该错误需要在更高的流上进行改装,则将该活动交付到主 Int 流。
    (注意:并非总是需要交付所有错误:与当前的开发状态相比,它们可能已过时)
于 2009-03-03T14:02:22.700 回答
2

我解决这个问题的方法是制作另一个流,即集成流的子流。创建此 Stream 的最简单方法是打开 ClearCase Project Explorer(不是 Rational ClearCase Explorer)并导航到项目,然后是相关的 Stream。右键单击集成流并选择“创建子流...”

单击“高级选项”并为每个组件选择一个基线。通过选择组件然后选择“更改...”并选择您想要查看的特定基线来执行此操作。您可能想要选择“提示我为此流创建视图”。选择“确定”。

任何开发人员都可以做到这一点。您无需成为 VOB 所有者或项目或流所有者。

于 2009-03-03T15:21:55.943 回答
1

这要看情况。实际上,答案在于设置您的配置规范以指向正确的文件。您的配置规范告诉您查看哪些版本的元素。但是你如何编写它取决于你的项目对基线的方法。您是否应用了标签来标记该基线?如果是这样,并且您只想阅读而不是签出任何新内容,那么您的配置规范可以很简单

element * <LABELNAME>

如果您没有使用标签,您还可以设置配置规范以根据日期向您显示文件。您需要添加的规则越多来限制您的元素选择,它就会变得越复杂。如果您有更多细节,我可以尝试详细说明您可能需要哪些规则。否则,我会阅读 ClearCase 附带的手册。如果您从 ClearCase Explorer 查看扩展帮助,然后执行“在线查看 Rational ClearCase 手册”,它应该会为您提供一些指向命令参考的链接。每当我需要以某种新方式修改配置规范时,我都会去这里。

另外,请注意我们只使用动态视图,所以我不知道快照视图的工作方式是否不同。

于 2009-03-03T13:50:32.450 回答