【问题标题】:ClearCase : How Can I Revert to Earlier baseline?ClearCase:如何恢复到较早的基线?
【发布时间】:2009-03-03 12:08:34
【问题描述】:

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

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

【问题讨论】:

    标签: clearcase


    【解决方案1】:

    由于您使用术语基线,我假设您使用的是 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 流。
      (注意:并不总是需要提交所有错误:与当前的开发状态相比,它们可能已经过时)

    【讨论】:

    • 是的,我正在使用 UCM。当我制作并行子/开发流时,我可以加载所需的基线作为基础。但是,当我在此并行流中进行任何更改时,我无法再次更改基础基线。你能帮忙吗?
    • 非常感谢您的回答。如何在 UCM 项目中创建非 UCM 视图(对不起,我是新手)?并且当开发人员想要查看比当前并行流更旧的基线时,他/她是否必须为旧基线创建新的子开发流?
    【解决方案2】:

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

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

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

    【讨论】:

    • 如果您只是调试旧版本,或者从旧基线生成二进制文件,您还可以将新流标记为只读。完成您想要的操作后,您还可以将其标记为已过时,这样它就不会默认显示在项目资源管理器中。
    【解决方案3】:

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

    element * <LABELNAME>
    

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-29
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多