2012-12-06 17 views
1

我想从Bash脚本中找到ClearCase中签出文件的父代。例如,如果我输入ct ls我得到这个:在ClearCase中查找签出版本的父代

$ ct ls some_file 
[email protected]@/main/some/branch/CHECKEDOUT from [email protected]@/main/some/branch/6 Rule: CHECKEDOUT 

我想找到一个脚本父版本([email protected]@/main/some/branch/6)。当然,我可以使用awk或类似的文本处理工具,但我认为这是一个非常丑陋的解决方案,并且可以轻松打破更多奇特文件名(例如,如果它有空格或字符串“from”)。

回答

0

使用fmt_ccase的 “%PSn” 格式(cleartool描述)

cleartool describe -fmt "%PSn" [email protected]@/main/some/branch/CHECKEDOUT 

%PSn 

前身短名称
对于一个版本,前一版本的版本号的缩写形式:branch-pathname/version-number
对于其他对象,为空字符串。

请注意,对于@@/main/0(其中all elements, files or directories, have),它也会返回一个空字符串。


OP petersohnmentions,它是类似于:

cleartool describe -short -pred [email protected]@/main/some/branch/CHECKEDOUT 
+0

谢谢。实际上,我发现'cleartool描述-short -pred some_file @@/main/some/branch/CHECKEDOUT'也是一样。这里还有很多有用的东西:http://stackoverflow.com/questions/4447178/script-to-get-a-files-version-in-clearcase – petersohn

+0

@petersohn有趣的。我已经将你的命令包含在答案中以提高可视性。 – VonC