Perforce:仅获取 depot 文件的本地路径

Perforce: get ONLY the local path of a depot file

我需要获取一个depot文件的本地路径,例如:

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 命令吗?

非Windows OS, 运行:

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

非常接近,Samwise。我本来可以对主要答案发表评论,但还没有足够的代表,抱歉。​​

为了防止Windows扩展环境变量,两个百分比都需要进行胡萝卜转义,并且表达式的那部分不能用引号引起来。

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

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