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

ClearCase:如何恢复到早期的基线?,clearcase,Clearcase,如何恢复到早期的基线?我们有一个UCM并行开发(多流)项目。每个开发人员都有一个项目集成流的快照视图。 开发人员希望在快照视图中看到应用程序的早期版本,这样他们就可以调试应用程序的早期版本以发现bug 当我想更改现有快照视图的基础基线时,clearcase不允许我这样做。那我该怎么做呢?嗯,这要看情况而定。实际上,答案在于设置您的配置规范以指向正确的文件。配置规范告诉视图要查看哪些版本的元素。但如何编写它取决于项目的基线方法。您是否应用了标签来标记该基线?如果是这样,并且如果您只想阅读而不想签出

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


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

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

element * <LABELNAME>
元素*
如果不使用标签,还可以设置配置规范,根据日期显示文件。需要添加更多的规则来约束元素选择,这会变得更加复杂。如果你有更多的细节,我可以试着详细说明你可能需要什么规则。否则,我会阅读ClearCase附带的手册。如果您查看ClearCase Explorer的扩展帮助,然后执行“在线查看Rational ClearCase手册”,它应该会为您提供一些指向命令引用的链接。每当我需要以某种新的方式修改配置规范时,我都会这样做


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

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

在流上,不能向后恢复基线

一种可能性是创建一个平行流,以所需的基线为基础:这是最快的方法


在这个新流的更改之后,您可以创建一个新的ReBASE来更改基础基线,但是只有当新的ReBASE使用父流(不是较老的基线)的最近基线时,


对于您的特定需要,我建议使用一个简单的规则创建一个非UCM快照视图

element * thePreviousBaseline
为了使开发商能够:

  • 他/她当前的UCM开发视图(始终设置在与流关联的分支的最新位置)
  • 第二个Snashot视图设置为他/她需要的任何基线
第二个快照视图与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流。
    (注意:并非所有bug都需要交付:与当前的开发状态相比,它们可能已经过时)

    • 我解决这个问题的方法是创建另一个流,集成流的子流。创建此流的最简单方法是打开ClearCase项目资源管理器(不是Rational ClearCase资源管理器)并导航到该项目,然后导航到有问题的流。右键单击集成流并选择“创建子流…”

      单击“高级选项”并为每个组件选择基线。为此,请选择组件,然后选择“更改…”并选择要查看的特定基线。您可能希望选择“提示我为此流创建视图”。选择“确定”


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

      是的,我使用UCM。当我做并行的子/开发流时,我可以加载期望的基线作为基础。但是当我在这个并行流中做任何改变时,我不能再改变基础基线。你能帮忙吗?非常感谢你的答案。如何在UCM项目中创建非UCM视图(对不起,我是新手)?当开发人员希望看到比当前并行流更旧的基线时,他/她是否必须为旧基线创建新的子开发流?如果您只是调试旧版本,或者从旧基线生成二进制文件,您还可以将新流标记为只读。完成所需操作后,还可以将其标记为已过时,这样默认情况下它不会显示在project explorer中。