我需要获取软件仓库文件的本地路径,例如:
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命令吗?
答案 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