【问题标题】:Extract branch name from p4 depot path从 p4 仓库路径中提取分支名称
【发布时间】:2020-06-27 15:24:24
【问题描述】:

是否有任何 perforce 命令或 p4 util 可用于从仓库路径中提取分支名称。 例如,我的仓库位置为“//depot/folder/suffix”,分支名称为“b-folder-suffix”。 如何从 depot 获取分支名称?有可能得到那种映射吗?

注意:我不是在寻找 RegEx。

【问题讨论】:

    标签: perforce perforce-client-spec p4python


    【解决方案1】:

    这是一个不使用任何正则表达式的小型 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:\Perforce\test>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:\Perforce\test>perl get-branch.pl //depot/foo/bleh
    foo
    
    C:\Perforce\test>perl get-branch.pl //depot/main/bleh
    bar
    foo
    spaces
    

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

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 1970-01-01
      • 2011-12-11
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 2013-01-03
      • 2023-03-12
      相关资源
      最近更新 更多