使用 p4 软件仓库的 perforce 软件仓库未显示在客户端上

Posted

技术标签:

【中文标题】使用 p4 软件仓库的 perforce 软件仓库未显示在客户端上【英文标题】:perforce depot not showing up on client using p4 depots 【发布时间】:2020-09-07 10:53:27 【问题描述】:

我最近使用doc 作为参考,将我的 perforce 服务器从在 Windows 上运行的旧版本迁移到了 Linux 中的新服务器。

如果我在运行服务器的机器上运行p4 depots 重新启动服务器后,我会得到以下输出

Depot depot 2017/06/05 local depot/... 'Default depot'
Depot spec 2020/05/20 spec .p4s spec/... 'Created by super. '
Depot streamsDepot 2017/06/05 stream 1 streamsDepot/... 'Created by perforce.  '
Depot unload 2020/05/20 unload unload/... 'Created by super. '

但是当我从连接到服务器的另一台机器上运行相同的 p4 depots 命令时,我只能得到三个仓库

Depot depot 2020/05/20 local depot/... 'Default depot'
Depot spec 2020/05/20 spec .p4s spec/... 'Created by super. '
Depot unload 2020/05/20 unload unload/... 'Created by super. '

这些也是从 p4v 可见的相同仓库。即使在点击“获取最新”后,我仍然会看到这 3 个仓库。我也尝试过p4 sync,但再次出现错误

//streamsDepot/... - must refer to client 'My-Client-Machine'.

另外,我在p4 depots 文档上没有看到任何为我解决问题的内容。这是预期的行为吗?

【问题讨论】:

【参考方案1】:

您可能会看到来自两台不同客户端计算机的p4 depots 命令的不同结果的三个原因(请注意,当您“在服务器上”运行命令时,您仍在使用客户端,而客户端恰好在服务器机器):

    您正在连接到两个不同的服务器。 您有两组不同的权限。 (您无权访问的仓库被隐藏。) (流 depot 的特殊例外)您有一个非常旧的客户端可执行文件,并且服务器隐藏了您的客户端可能无法解析的 depot 类型。

p4 info 主要是让你排除这两种情况。如果您连接到不同的服务器,您将看到不同的 Server address 和/或 Server root 值。

如果您的User name 不同,则可能解释了权限问题;如果不是,请检查保护表以了解基于 IP 的限制。 p4 protects 在这里可能有用。

您可以通过p4 -V查看客户端可执行版本。

【讨论】:

我可以确认服务器和用户是一样的。 p4 保护和权限也都是默认设置。是否仍然期望有任何默认的 IP 限制?我系统上的 p4 -V 显示它是 2019.2 第二台机器上的p4 protects 是否显示您可以访问//streamsDepot/... 没关系——它们甚至不是同一个服务器。 depot 上的时间戳不同是一个致命的赠品。差点把我骗了! :D 这是我的一个愚蠢的错误,感谢您指出这一点 这几乎总是最简单的事情,在帮助其他人调试时,您仍然必须反复检查,因为他们会告诉您他们在没有实际操作的情况下进行了双重检查。 ;) 我当然也为此感到内疚。

以上是关于使用 p4 软件仓库的 perforce 软件仓库未显示在客户端上的主要内容,如果未能解决你的问题,请参考以下文章

Perforce unicode问题:使用非ascii字符的同步文件会导致截断

Perforce resolve 无法正确处理重命名

Perforce(AWZ 服务器 Lightsail Windows 实例) - 虚幻引擎源代码控制 - 移动 Perforce 仓库

linux下perforce(p4)的使用方法和命令

perforce p4 同步问题

Perforce使用命令行修改changelist的Description