【发布时间】:2017-09-12 13:40:03
【问题描述】:
Perforce 中的工作区和仓库之间是否存在映射?例如,如果我在 D:/myWorkspace 上创建了一个工作区,我可以运行 Perforce 命令来查找创建它的仓库吗?
【问题讨论】:
标签: perforce
Perforce 中的工作区和仓库之间是否存在映射?例如,如果我在 D:/myWorkspace 上创建了一个工作区,我可以运行 Perforce 命令来查找创建它的仓库吗?
【问题讨论】:
标签: perforce
如果您连接到 Perforce 服务器,这非常简单;运行类似p4 where //... 或p4 client -o 的命令来查看与当前客户端工作区关联的软件仓库。
如果您已连接到 Perforce 服务器,但这些连接设置不包括可能与当前目录关联的工作区的名称,则您需要使用 p4 clients 命令并匹配 @987654325 @value 到客户端主机名,然后查找与目录匹配的 Root 值。请注意,可能有多个匹配项——人们有时会创建一个没有Host 值(允许从任何主机使用它)和/或null Root 值(允许它映射任何目录)的客户端)。
如果您甚至不知道 Perforce 服务器的地址,并且它没有在环境中设置,那么您可能会很不走运; Perforce 命令会自动从系统环境、注册表、P4CONFIG 文件等中获取 P4PORT 设置,但不能保证任何给定的 Perforce 客户端机器都会通过这些机制之一建立连接(最多反常的情况下,有人可能会通过 -p 全局标志在每个命令上指定 P4PORT。
在编写 Perforce 命令脚本时,通常可以合理地假设环境配置正确,包括有效的 P4PORT/P4USER/P4CLIENT 设置,如果用户没有提供这些设置,则会出错。从用户使用 P4 CLI 的 shell 中运行的脚本已经具有正确配置的环境,从 P4V 作为“自定义工具”运行的脚本也将具有正确配置的环境。
【讨论】:
p4 files \\depot\...来收集信息。
p4 files //CLIENTNAME/... 或p4 files D:\workspace\...?同样,这假设您已经拥有有效的连接设置(您没有指出这是否是您自己运行的脚本,或者它是否需要能够应对任意配置不当的客户端环境)。正如我在上一个问题中所建议的那样,如果您从 P4V 运行它,您可能希望将其作为自定义工具运行,因为这将为您设置环境。
must create client 'station_name' to acces local files
p4 clients 并搜索匹配项,请参阅此答案的第 2 部分 - 或将此脚本作为自定义工具运行,它会神奇地工作。)