0

P4 服务器 2013.1/610569

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

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

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

4

1 回答 1

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 等)之一来代替这个,因为它们要容易得多。

于 2013-08-21T15:38:44.707 回答