Perforce:仅获取软件仓库文件的本地路径

时间:2019-01-08 18:17:24

标签: perforce

我需要获取软件仓库文件的本地路径,例如:

input: //MyDepot/MyBranch/my file.txt

output (mac): /Volumes/p4/MyDepot/MyBranch/my file.txt

或:

output (windows): F:\p4\MyDepot\MyBranch\my file.txt

'p4 have'和'p4 where'都会产生不解析的输出,包括我不需要的映射信息。这个简单的任务有p4命令吗?

2 个答案:

答案 0 :(得分:4)

在非Windows操作系统上,运行:

p4 -ztag -F %path% where <depotFilePath>

这将为您提供只有本地路径的单线。

在Windows上,%path%扩展为系统环境路径,因此仅在非Windows系统上有效。

-F是客户端选项,因此,如果没有,则可能需要更新p4二进制文件。如果您没有它,并且无法更新二进制文件,则也可以只运行p4 -ztag where <depotFilePath>

您会轻松解析输出。密钥为path,以获取文件的本地路径。

输出将如下所示:

... depotFile //depot/a
... clientFile //gabe/a
... path /Users/gabe/tmp/a

答案 1 :(得分:0)

非常接近,Samwise。我会在主要答案上发表评论,但对不起,我的答复还不够。

为防止Windows扩展环境变量,两个百分比都必须用胡萝卜转义,并且表达式的该部分一定不能用引号引起来。

示例:p4 -ztag -F ^%change ^%,^%time ^%,^%path ^%变化-m 3

从2020/4/2开始的示例:https://community.perforce.com/s/article/15148