从p4仓库路径提取分支名称



是否有任何performce命令或p4-util可用于从仓库路径中提取分支名称。例如,我的仓库位置为"//仓库/文件夹/后缀",分支机构名称为"b-folder-后缀"。如何从仓库中获取分支机构名称?有可能得到那种映射吗?

注意:我不是在找RegEx。

这里有一个不使用任何正则表达式的小型Perl脚本:

foreach(`p4 -F %domainName% branches`) {
chomp;
if (`p4 -F %code0% populate -fn -b $_ -s $ARGV[0]` != 554768862) { print $_."n"; }
}

样本输出(其中每个分支映射//depot/main,但只有foo映射//depot/foo(:

C:Perforcetest>p4 branches
Branch bar 2020/03/16 'Created by Samwise. '
Branch foo 2020/03/16 'Created by Samwise. '
Branch spaces 2020/03/16 'Created by Samwise. '
C:Perforcetest>perl get-branch.pl //depot/foo/bleh
foo
C:Perforcetest>perl get-branch.pl //depot/main/bleh
bar
foo
spaces

它的工作原理是在具有指定文件路径的每个分支规范上运行一个populate命令,并查找特定的错误消息no source file(s) in branch view(即错误代码554768862;我是通过玩p4 -e populate ...得到的(。如果没有得到该消息,则假定路径由分支视图映射。请注意,此脚本在遇到其他错误(例如权限(时并不健壮。

最新更新