找出由不同 perforce 客户端(不同用户)同步的工作区的客户端工作区规范

Find out the client workspace specification of a workspace which was synced by a different perforce client (different user)

我对 perforce 客户端的确切含义以及它如何维护同步文件的信息感到困惑(例如:将本地文件映射到 perforce depot)。

假设一个人 A 将一些文件从 perforce depot 同步到他的客户端工作区。这些文件存在于他的本地系统上,然后通过网络传输到我的本地系统中。

如果我 运行 p4 client 在我刚得到的工作区上,输出会是什么?它是否提供了 A 的工作空间的客户端规格?

perforce 客户端是否将客户端规范维护为工作区本身中的一个文件?

Perforce“客户端规范”(通常简称为“客户端”)是服务器数据库中的一个实体,用于跟踪特定客户端工作区的状态。每个客户端主机都应该有自己的客户端规范(或者可能有许多客户端规范,每个客户端规范映射该主机本地文件系统上的不同文件夹)。除了描述客户端规格的表格(您在 运行 p4 client -o 时看到的内容,它源自 db.domain 和 db.views 表中的信息),客户端规格还包含描述同步到工作区的每个单独文件的数据库条目 (db.have)、当前在挂起的更改列表中打开的每个文件(db.working 和 db.locks)以及任何挂起的文件或完成这些文件的“解析”操作(db.resolve 和 db.resolved)。

如果 A 从他的工作区向您发送文件,则这些文件中不会编码任何 Perforce 特定信息,因为该信息在服务器上维护并相对于 A 的客户端规范进行存储。一旦工作区文件从 Perforce 工作区的上下文中删除,它们就不再与 Perforce 或它们在库中的版本历史有任何联系;它们只是文件。 (如果您使用 Dropbox 或 Google Drive 之类的工具,请将其视为您从 Dropbox 文件夹中删除的文件,然后将其作为附件通过电子邮件发送给某人,他们将其保存到自己的桌面上——他们拥有该文件,但是它不再与您的 Dropbox 同步。)

如果您 运行 p4 client 在收到这些文件后,它与文件本身没有任何关联。相反,您将根据本地 P4PORTP4CLIENT 值查看(或创建)您连接到的服务器的自己的客户端规范。如果未设置这些值,您将尝试使用与本地主机名匹配的客户端规范名称连接到位于 perforce:1666 的服务器。