2

我正在尝试从 python 中的本地路径上调用 p4 同步命令。

P4dir = "D:/Perforce/Project/*"
subprocess.call("p4 sync " + P4dir)

这会因不存在的目录错误而失败。但是,如果我调用服务器路径,它工作正常:

P4dir = "//depot/Project/*"
subprocess.call("p4 sync " + P4dir) 

这可能非常简单,我不得不问我有点尴尬,但是 P4 命令行参数的文档缺乏很多。

那么是否有一种方法可以翻译本地路径,只需检查映射就应该很简单?

4

2 回答 2

3

您可以使用p4 where转换本地路径。例子:

$ p4 where /home/user/perforce/project
//depot/project //the_workspace/project /home/user/perforce/project

我在 Linux 机器上厌倦了这个,所以本地路径是 *nix 风格,但它也应该在 Windows 上工作。也适用于非常方便p4 where的相对路径。./some_folder

于 2013-11-14T13:14:48.060 回答
1

我怀疑 P4 没有意识到您打算将其传递给本地路径。(在 Unix 意义上,它看起来不像。)您是否尝试过p4 sync *使用D:/Perforce/Project其当前目录执行?

另一方面,如果您的 P4 二进制文件是使用 Cygwin 构建的,您可以将路径指定为/cygdrive/d/Perforce/Project.

于 2013-11-14T13:02:52.420 回答