在 Perforce 中使用 --field 运算符将多个文件添加到更改列表

Adding multiple files to changelist using --field operator in Perforce

我最近遇到 询问如何使用 p4 命令行实用程序创建一个空的更改列表。它提到您可以使用 --field "Files=" 选项将文件添加到新的更改列表中。如果我只想添加一个文件,这对我来说效果很好。但是,我似乎无法添加多个文件。

例如,假设我有两个测试文件,我可以用一条命令添加它们:

p4 add test1.txt test2.txt

扩展上面链接的问题中描述的方法,我想我可以这样做来创建一个新的更改列表:

p4 --field "Description=test submission" --field "Files= //depot/folder/test1.txt //depot/folder/test2.txt" change -o | p4 change -i

但是,我收到一条错误消息,声称所需的文件不在客户端视图中(认为这是因为它将整个字符串作为一个文件读取)。我一次只能让它处理一个文件,即

p4 --field "Description=test submission" --field "Files=//depot/folder/test1.txt" change -o | p4 change -i

有什么想法可以将这两个文件添加到这个新的更改列表中吗?

谢谢!

你让它变得比需要的更复杂。

也就是说,您可以使用 += 运算符,如下所示:

p4 --field "Description=test submission" --field "Files=//depot/folder/test1.txt" --field "Files+=//depot/folder/test2.txt" change -o | p4 change -i

但是不要那样做。这些是做同样事情的更简单方法:

p4 add test1.txt test2.txt
p4 --field Description=test change -o | p4 change -i

或:

p4 add test1.txt test2.txt
p4 --field Description=test --field Files= change -o | p4 -Ztag -F "reopen -c %change% test1.txt test2.txt" change -i | p4 -x - run

(好吧,如果你想把它作为一个单行脚本来做,最后一个就不那么简单了——如果你只是 运行 "p4 change" 你自己并且可以只需将更改编号传递给 p4 reopen)

(edit) 再多一个,这个适合一长行:

p4 --field Description=test --field Files= change -o | p4 -Ztag -F "add -c %change% test1.txt test2.txt" change -i | p4 -x - run