工作区和它的仓库之间是否存在映射?
Is there a mapping between a workspace and it's depot?
Perforce
中是否存在工作空间和软件仓库之间的映射?例如,如果我在 D:/myWorkspace
上创建了一个工作区,我可以 运行 一个 Perforce 命令来从创建它的地方找到 depot 吗?
如果您连接到 Perforce 服务器,这非常简单; 运行 类似 p4 where //...
或 p4 client -o
的命令以查看与当前客户端工作区关联的软件仓库。
如果您已连接到 Perforce 服务器,但这些连接设置不包括可能与当前目录关联的工作区名称,则您需要使用 p4 clients
命令和将 Host
值与客户端主机名匹配,然后查找与目录匹配的 Root
值。请注意,可能会有多个匹配项——人们有时会做一些事情,比如创建一个没有 Host
值的客户端(允许它被任何主机使用)and/or 一个 null Root
值(允许它映射任何目录)。
如果您甚至不知道 Perforce 服务器的地址,并且它没有在环境中设置,那么您可能会倒霉; Perforce 命令会自动从系统环境、注册表、P4CONFIG 文件等中获取 P4PORT 设置,但不能保证任何给定的 Perforce 客户端机器都会通过这些机制之一建立连接(大多数情况下反常情况下,有人可能会通过 -p
全局标志在每个命令上指定 P4PORT。
编写 Perforce 命令脚本时,假设正确配置的环境包含有效 P4PORT/P4USER/P4CLIENT 设置通常是合理的,如果用户未提供这些设置,则会出错。用户使用 P4 CLI 的 shell 中的脚本 运行 将已经具有正确配置的环境,P4V 中的脚本 运行 作为 "Custom Tool" 也是如此。
Perforce
中是否存在工作空间和软件仓库之间的映射?例如,如果我在 D:/myWorkspace
上创建了一个工作区,我可以 运行 一个 Perforce 命令来从创建它的地方找到 depot 吗?
如果您连接到 Perforce 服务器,这非常简单; 运行 类似 p4 where //...
或 p4 client -o
的命令以查看与当前客户端工作区关联的软件仓库。
如果您已连接到 Perforce 服务器,但这些连接设置不包括可能与当前目录关联的工作区名称,则您需要使用 p4 clients
命令和将 Host
值与客户端主机名匹配,然后查找与目录匹配的 Root
值。请注意,可能会有多个匹配项——人们有时会做一些事情,比如创建一个没有 Host
值的客户端(允许它被任何主机使用)and/or 一个 null Root
值(允许它映射任何目录)。
如果您甚至不知道 Perforce 服务器的地址,并且它没有在环境中设置,那么您可能会倒霉; Perforce 命令会自动从系统环境、注册表、P4CONFIG 文件等中获取 P4PORT 设置,但不能保证任何给定的 Perforce 客户端机器都会通过这些机制之一建立连接(大多数情况下反常情况下,有人可能会通过 -p
全局标志在每个命令上指定 P4PORT。
编写 Perforce 命令脚本时,假设正确配置的环境包含有效 P4PORT/P4USER/P4CLIENT 设置通常是合理的,如果用户未提供这些设置,则会出错。用户使用 P4 CLI 的 shell 中的脚本 运行 将已经具有正确配置的环境,P4V 中的脚本 运行 作为 "Custom Tool" 也是如此。