我正在尝试查找特定分支上的所有版本,但我的工作视图的配置规范无关紧要(我希望在/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”创建的元素只在某条路径下......
任何想法如何在没有额外脚本的情况下解决问题?
答案 0 :(得分:0)
查看query language使用的cleartool find
,您可以使用复合查询
query && query
query || query ! query ( query )
这意味着您可以尝试选择:
mybranch/0
:! version(...\my_branch\0)
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。