【问题标题】:Perforce submitting default pending changelist with a jobPerforce 使用作业提交默认挂起更改列表
【发布时间】:2013-08-21 12:20:09
【问题描述】:

P4 服务器 2013.1/610569

我正在尝试使用作业编写提交默认更改列表的脚本。我知道不可能直接将作业添加到待处理的更改列表并提交它,但是我愿意以间接的方式做事。基本上我的步骤是

  • 将 Pending 更改列表中的所有文件移动到新编号的更改列表中
  • 将给定的 P4 作业名称添加到这个新编号的更改列表中
  • 将编号更改列表的文本描述设置为与 P4 作业名称相同
  • 提交给定的工作

有人可以向我发布需要为此运行的 p4 命令吗?我尝试从 P4V 执行此操作并捕获底部的命令,但它会在您移动文件时出现,我们必须列出所有文件,我正在寻找一种直接的方式来执行此操作。

【问题讨论】:

    标签: perforce


    【解决方案1】:

    这是一个起点:

    p4 change -o | sed 's/<enter.*>/Change to fix job000001/' >change.dat
    echo 'Jobs: job000001' >> change.dat
    p4 change -i < change.dat >changenumber.out
    p4 submit -c `cut -f 2 -d ' ' < changenumber.out`
    

    前两行构造新更改列表的表单数据。

    第三行创建编号的更改列表,并保存输出, 这类似于“更改 12345 已保存”。

    第四行提取该更改编号并将其提供给“p4 submit -c”。

    当然,我没有做任何错误检查、向用户报告结果等。

    作为替代方案,请考虑以下情况:

    p4 submit -d "Change to fix job000001" | grep 'Change .* submitted' | cut -f 2 -d ' ' >change.out
    p4 fix -c `cat change.out` job000001
    

    该变体在不附加作业的情况下提交更改,然后将更改与作业相关联。

    无论哪种方式,考虑使用其中一种 Perforce 脚本 API(P4Perl、P4Ruby、P4Python 等)来代替这个,因为它们要容易得多。

    【讨论】:

      猜你喜欢
      • 2012-03-26
      • 2019-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多