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

ClearCase: Find all versions of a file newer than labelled version

假设我有一个版本为 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 (因为版本号已经由 find 查询提供)然后搜索版本高于标记版本的文件。因此,在我使用版本 2 的 mylabel 的示例中,我希望得到如下内容:

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

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

version( > /main/2)ClearCase config spec 'version selectors'.

中没有等价物

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

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

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