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



我最近遇到了这个问题,询问如何使用 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,那就非常简单了)

(编辑)还有一个,这个适合一长行:

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

最新更新