ClearCase - 在特定路径

时间:2015-05-28 16:39:15

标签: find clearcase cleartool

我正在尝试查找特定分支上的所有版本,但我的工作视图的配置规范无关紧要(我希望在/main/LATEST的视图中工作)。
我在Windows上工作。假设版本是在27. May.17:47之前创建的,我不想在我的分支上看到0版本。

我尝试使用cleartool find

来做到这一点
cleartool find M:\my_view.dv\MY_VOB\folder_x\folder_y\ -version "brtype(my_branch) && ! created_since(27-May.17:47) && ! version(...\my_branch\0)" -print

适用于至少具有版本\main\1或更高版本的所有元素,元素已从该元素分支到my_branch。
但对于刚刚获得版本\main\0的元素(因为它是使用类似“element * \main\0 -mkbranch my_branch”的规则创建的),它不起作用。

所以我尝试使用另一个带有“-nvisible”的cleartool查找,但“-nvisible”在没有“-all”的情况下无效。所以我必须使用以下内容:

cleartool find M:\my_view.dv\MY_VOB\folder_x\folder_y\ -all -nvisible -version "brtype(my_branch) && ! created_since(27-May.17:47) && ! version(...\my_branch\0)" -print

但由于“-all”选项,我的路径“M:\my_view.dv\MY_VOB\folder_x\folder_y\”完全被忽略。而不只是在我的路径中搜索,它正在搜索整个VOB,这不是我想要的。因为它还为我提供了“M:\my_view.dv\MY_VOB\folder_z\”下的文件。

所以我要么修改第一个查询,它将为我提供使用“element * \main\0 -mkbranch my_branch”创建的元素,或者我需要第二个查询,它给出了使用“{{1”创建的元素只在某条路径下......

任何想法如何在没有额外脚本的情况下解决问题?

2 个答案:

答案 0 :(得分:0)

查看query language使用的cleartool find,您可以使用复合查询

query && query
query || query ! query ( query )

这意味着您可以尝试选择:

  • mybranch/0! version(...\my_branch\0)
  • 之外的任何版本
  • 任何版本0没有版本1:version(...\my_branch\0) && ! version(...\my_branch\1)

类似的东西:

brtype(my_branch) && ! created_since(27-May.17:47) && \
( ! version(...\my_branch\0)
  || \
  ( version(...\my_branch\0) && ! version(...\my_branch\1) ) \
)

要完成,可能会选择在mybranch上创建了多个版本的文件的版本0,但版本1已被删除(rmver)。 我不认为这会经常

答案 1 :(得分:0)

目标是仅在特定路径下的分支“my_branch”上获取所有元素版本的列表,但视图及其配置规范无关紧要。所以我使用什么样的查询并不重要,因为如果我用来运行cleartool find的视图没有选择元素本身,那么它将不会给我任何版本的结果。如果某个元素刚刚获得版本/main/0但版本为.../my_branch/1,那么配置规范element * CHECKEDOUT \ element * /main/LATEST的视图就不会选中它,所以即使查询本身会列出该元素,无论如何都不会被处理,因为视图没有选择它... 所以解决方案应该是添加-nvisible,因此即使视图配置规范没有选择它们,也会处理所有元素。但是添加-nvisible而不添加-all是不可能的......一旦我添加-all,find命令将忽略我的给定路径并搜索整个VOB。