ClearCase:查找比标记版本更新的文件的所有版本

时间:2015-03-09 10:28:46

标签: clearcase

假设我有一个版本0到4的文件。在版本2上,我应用了一个名为mylabel的标签。现在我想使用cleartool进行查找查询,它给出了我在标记版本2之后创建的所有版本。这是我只想将版本3和4作为输出,而不是版本0-2。

我知道如何找到除标记的版本以外的所有版本:

cleartool find . -version "!lbtpye(mylabel)" -print

还有一个命令来获取此元素的历史记录:

cleartool lshistory -minor PATH_TO_FILE

理论上这给了我标签申请的日期,所以我可以做到

cleartool find . -version "created_since(date)" -print

但是lshistory命令总是输出元素的完整历史记录,我觉得解析所有这些信息只是为了获得所需的日期。

所以基本上我想知道是否有更优雅的方式来做到这一点。我可以想象我可能首先检查哪个版本有mylabel(因为版本号已经由查询查询提供),然后搜索版本高于标签版本的文件。因此,在mylabel版本2的示例中,我希望有类似的内容:

cleartool find . -version "version( > /main/2)" -print

在VonC的回答之后我应该提到标签类型只会创建一次,标签本身每隔几天就会移动一次。因此无法检查标签类型的创建时间。

1 个答案:

答案 0 :(得分:1)

version( > /main/2) ClearCase config spec 'version selectors'中没有等同性。

这意味着更容易的选项应该依赖于约定,例如约定应用标签的日期应该非常接近创建标签type的日期。
这意味着mklbtype shoudl可以在 mklabel之前完成,然后您可以使用标签类型创建日期进行cleartool find . -version "created_since(date)" -print查询。

基本上,问题的关键在于跟踪上次应用(或移动的标签)的日期,因为它在这里是一个转移标签。

另一种方法是将该日期存储为附加到lbtype的属性:只有一个lbtype,每次移动标签时都会更改一个属性。
请参阅cleartool mkattr