ClearCase:我如何恢复到早期基线?

时间:2009-03-03 12:08:34

标签: clearcase

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

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

3 个答案:

答案 0 :(得分:6)

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

在流上,您无法向后恢复基线。

一种可能性是建立一个并行流,以期望的基线为基础:这是最快捷的方式。


在对此新流进行更改后,您可以创建一个新的rebase来更改基础基线,但前提是新的rebase使用的是父流中较新的基线(不是较旧的基线)


根据您的具体需要,我建议使用简单的规则

创建非UCM快照视图
element * thePreviousBaseline

为了让开发者拥有:

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

第二个快照视图与UCM项目完全无关,并利用了基线的“完整”特性(请检查您的基线是否已经“完整”,而不是“增量”。如果是“增量”,只需更改其类型并将其升级为完整版

因此,在您当前的快照UCM视图旁边,您可以在任何想要非snasphot视图的地方创建:

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流。
    (注意:并不总是需要传递所有错误:与开发的当前状态相比,它们可能已经过时了)。

答案 1 :(得分:2)

我解决这个问题的方法是制作另一个Stream,即整合流的子流。创建此Stream的最简单方法是打开ClearCase Project Explorer(而非Rational ClearCase Explorer)并导航到Project,然后导航到有问题的Stream。右键单击Integration Stream并选择“Create Child Stream ...”

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

任何开发人员都可以这样做。您不需要是VOB所有者或项目或流所有者。

答案 2 :(得分:1)

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

一样简单
element * <LABELNAME>

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

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