P4Python 和全局参数:-d

P4Python and global parameters: -d

我正在尝试使用 P4 为 Python 创建一个工作区。在终端中运行的命令:

p4 -d path client -S  //stream name

不适用于 P4 版本:

p4.run('-d', path, 'client', '-S',  //stream, name)

我收到“[错误]:"Unknown command. Try 'p4 help' for info."”。我也试过:

self.p4.protocol("-d", path)
p4.run_client('-S', //stream, name)

它不会产生此错误,但“-d”部分无效。我也试过引用,结果相同。 为什么不 运行?如何使用?

当您 运行 一个 p4 命令时,在命令名称 之前的标志(“global options”)是 CLI 客户端的标志本身,命令之后出现的标志是服务器命令的标志。

p4.run 函数直接向服务器发送命令而不调用 p4 CLI,因此 CLI 选项将不起作用(服务器根本不实现它们,所以它'只是 return 一个使用错误)。如果您试图获得全局选项之一的效果,将有一个具有该效果的 API 函数。

例如,-d 的 P4Python 等效项是 cwd 属性:

https://www.perforce.com/manuals/p4python/Content/P4Python/python.p4.html#Instance_Attributes_..37

所以而不是:

p4.connect()
p4.run('-d', path, 'client', '-S',  //stream, name)

做:

p4.cwd = path
p4.connect()
p4.run('client', '-S',  //stream, name)