Perforce P4同步命令与本地路径?

Perforce P4同步命令与本地路径?,perforce,Perforce,我正在尝试从python中调用本地路径上的p4 sync命令 P4dir = "D:/Perforce/Project/*" subprocess.call("p4 sync " + P4dir) 此操作失败,出现不存在的目录错误。 但是,如果我调用服务器路径,它可以正常工作: P4dir = "//depot/Project/*" subprocess.call("p4 sync " + P4dir) 这可能是非常简单的,我有点尴尬,我不得不问,但P4命令行参数的文档缺乏很多 那么,是否

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

P4dir = "D:/Perforce/Project/*"
subprocess.call("p4 sync " + P4dir)
此操作失败,出现不存在的目录错误。 但是,如果我调用服务器路径,它可以正常工作:

P4dir = "//depot/Project/*"
subprocess.call("p4 sync " + P4dir) 
这可能是非常简单的,我有点尴尬,我不得不问,但P4命令行参数的文档缺乏很多


那么,是否有一种方法可以简单地通过检查映射来转换本地路径?

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


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

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


另一方面,如果您的P4二进制文件是用Cygwin构建的,那么您可以将路径指定为
/cygdrive/d/Perforce/Project
您可以使用
P4 where
来转换本地路径。例如:

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

我在Linux机器上使用了这个,所以本地路径是*nix风格的,但它也应该在Windows上工作
p4-where
还可以使用相对路径,如
/some\u folder
,这非常方便。

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

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

我在Linux机器上使用了这个,所以本地路径是*nix风格的,但它也应该在Windows上工作
p4,其中
还可以使用相对路径,如
/some\u folder
,非常方便。

谢谢!我必须添加一些额外的代码才能从python中的命令行参数读回输出,我也将在这里添加:'P4dir=“D:/Perforce/Project”输出,error=subprocess.Popen([“p4”,“where”,P4dir],stdout=subprocess.PIPE,stderr=subprocess.PIPE)。communicate()subprocess.call(“p4 update”+output.split(“”[0])+“/*”)如果您的路径中碰巧有空格,您会很难过。因为您已经在使用python,您可能希望使用
p4-G where PATH
(或者使用Performce python API)。谢谢!我必须添加一些额外的代码才能从python中的命令行参数读回输出,我还要在这里添加:'P4dir=“D:/Perforce/Project”output,error=subprocess.Popen([“p4”,“where”,P4dir],stdout=subprocess.PIPE,stderr=subprocess.PIPE)。communicate()subprocess.call(“p4 update”+output.split(“”)[0]+“/*”)如果您的路径中碰巧有空格,那么您就有麻烦了。因为您已经在使用python,您可能希望使用
p4-G where PATH
(或者使用Performce python API)。