我正在尝试从python内部在本地路径上调用p4同步命令。
P4dir = "D:/Perforce/Project/*"
subprocess.call("p4 sync " + P4dir)
此操作失败,并显示不存在的目录错误。但是,如果我调用服务器路径,它可以正常工作:
P4dir = "//depot/Project/*"
subprocess.call("p4 sync " + P4dir)
这可能非常简单,我不得不问有点尴尬,但是P4命令行参数的文档缺乏很多。
那么有没有一种方法可以转换本地路径,只需检查映射就应该很简单?
p4 where
转换本地路径。例:
$ p4 where /home/user/perforce/project
//depot/project //the_workspace/project /home/user/perforce/project
我在 Linux 盒子上厌倦了它,所以本地路径是 *nix 样式,但它也应该在 Windows 上运行。 p4 where
也适用于相对路径,如./some_folder
,非常方便。
我怀疑 P4 没有意识到您打算通过本地路径传递它。 (在Unix意义上,它看起来不像一个。 您是否尝试过使用D:/Perforce/Project
当前目录执行p4 sync *
?
换个角度,如果你的P4二进制文件是用Cygwin构建的,你可以将路径指定为/cygdrive/d/Perforce/Project
。