gpt4 book ai didi

find - 格式化 Clearcase cleartool 查找输出

转载 作者:行者123 更新时间:2023-12-04 04:49:52 26 4
gpt4 key购买 nike

在动态“默认 View ”的上下文中,当我发出以下命令时:
$ cd Dir_A/Dir_B$ ct find . -all -nvi -type f -ele 'brtype(my_branch)' -print
对于每一行,我都会得到如下所示的奇怪输出:

/vobs/vob_name/Dir_A/Dir_B@@/main/Branch_A/Branch_B/n1/Dir_C/main/Branch_C/n2/Dir_D/main/Branch_D/n3/Filename@@

如何获取 find 命令以简单地打印标准操作系统路径名,而无需每个目录的所有中间版本信息?

我试过 -exec 'ct des -fmt'无济于事。

最佳答案

这种奇怪的格式被称为 extended path name .
explained here ,结果如下:

\proj_vob\foo.c@@\main\bugfix\4

实际上叫做 版本扩展路径名 .

在你的情况下:
/vobs/vob_name/Dir_A/Dir_B@@/main/Branch_A/Dir_C/[...]/n3/Filename@@

vob 扩展路径名 .

它引用在 View 中不再可见的元素(文件或目录)(因为它们已被 rmnamed,即被删除)。

You can access any version of an element by using its version ID, which specifies its exact version-tree location.



这允许访问在您正在执行 cleartool find 的 View 中不可见的版本(即由 View 的配置规范选择)。 (自 a view is a requirement for a find 起)。

也试试 -nxname选项:
ct find . -all -nvi -nxname -type f -ele "brtype(my_branch)" -print

(但这只会删除最后的 @@ )

fmt_ccase有一些格式化它的方法,但您也可以尝试(如 in here ):
-exec "echo %CLEARCASE_PN%"

(在这里它不起作用,因为找到的版本没有可用的“路径名”: View 不会直接选择它,因此版本不可见,并且 %CLEARCASE_PN% 设置为 %CLEARCASE_XPN% ,扩展路径名)。

还要检查叶子名称返回的内容:
-exec "cleartool  descr -fmt \"%Ln\" \"%CLEARCASE_XPN%\""

但这仅返回文件名,而不返回其路径。

如果您需要一个简单的路径(它不会代表“实际”路径,因为这些元素在 View 中并非全部可见),您需要处理每一行以删除 /main/.../n1 , 只留下 Dir_C\dir_D\element .

这是一个假设这样做的库: ClearCase-Tools
 $explicitPath = '/vobTag/users/.@@/main/1/llf/main/12/install/main/1/README/main/2';
$canonPath = ClearCase::Vob::CanonPath->parse( $explicitPath );
$canonPath = $cpathObj->parse( $explicitPath );

Where $canonPath will, in this example, contain the following string:


 /vobTag/users/llf/install/README

您可以找到 sources in those rpm , 在 usr/lib/perl5/vendor_perl/5.6.1/ClearCase/Vob/CanonPath.pm .

实现不是微不足道的,但它是可行的:非常小的摘录:

push @branches, "main";
while (@leaves && !(($leaves[0] =~ "^[0-9]+\$") || ($leaves[0] =~ "^CHECKEDOUT\.[0-9]+\$"))) {
$leaf = shift(@leaves);
push @branches, $leaf if defined($leaf);
$self->dpr("dump(3) $leaf") if defined($leaf);
}

关于find - 格式化 Clearcase cleartool 查找输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17584653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com