假设我有一个版本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的回答之后我应该提到标签类型只会创建一次,标签本身每隔几天就会移动一次。因此无法检查标签类型的创建时间。
答案 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
。