如何从命令行获取 P4 更改列表中的文件并将它们搁置在新的更改列表中?

How can I take files in a P4 changelist and shelve them in a new changelist from the command line?

我从 P4 CL X 开始,它只包含未上架的文件。我想创建 CL Y,它与 CL X 相同(相同的描述,相同的文件编辑),但搁置了这些文件。我正在编写脚本,所以它需要通过命令行。

我 运行 遇到的问题:

  1. 从一个 CL 到另一个 CL 的描述看起来很麻烦。我想出的最好办法是使用 p4 describe,用正则表达式解析它的输出以获得描述,然后通过 'p4 --field "Description=VARIABLE" change -o | p4 change -i' 将它发布到新的。这太丑了。
  2. 我可以很容易地搁置文件,但找不到允许我将搁置文件移动过来的命令。或者,我可以复制原始文件,但我看不到将它们保留在原始 CL 上的方法(我猜这不存在,因为它会在本地回购中造成冲突,但我是不是 P4 专家)。

提前致谢。

这些可能需要调整您的脚本,但它们在一个简单的测试用例中对我来说已经足够好了:

  1. p4 --field Change=new --field Files= change -o OLDCHANGE | p4 change -i
  2. p4 unshelve -s OLDCHANGE -c NEWCHANGE ; p4 shelve -c NEWCHANGE