Perforce使用作业提交默认挂起的更改列表

时间:2013-08-21 12:20:10

标签: perforce

P4服务器2013.1 / 610569

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

  • 将待处理更改列表中的所有文件移至新编号的更改列表
  • 将指定的P4作业名称添加到此新编号的更改列表
  • 将编号的更改列表的文本描述设置为与P4作业名称
  • 相同
  • 提交给定的工作

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

1 个答案:

答案 0 :(得分: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等),而不是这样,因为它们更容易。