Perforce 文件不在客户端视图中

Perforce file(s) not in client view

我已经通过 docker 设置了一个新的 Perforce 服务器。我有一个管理员用户,我可以成功连接到它。

这当然是一个空服务器,所以我创建了一个名为 foo 的新工作区,其视图如下:

//depot/... //foo/depot/...

添加任何新文件失败:

/Users/test/workspace_foo/file - file(s) not in client view.

这个问题我发现了几百次,但我已经超出了创建工作区视图的步骤,但仍然无法正常工作。知道我在这里缺少什么吗?

我假设您工作区的根是 /Users/test/workspace_foo。这就是 //foo 在您的客户端视图中对应于:

Client: foo
Root: /Users/test/workspace_foo
View:
    //depot/... //foo/depot/...

对吧?所以这意味着:

//depot/... <-> /Users/test/workspace_foo/depot/...

侧边栏:p4 where 命令将向您显示任何给定路径的软件仓库语法、客户端语法和本地语法版本;使用 p4 where //... 查看您的整个客户端映射,重叠视图条目已消除歧义,客户端路径已扩展为本地语法。

您尝试添加的本地文件不在您定义的客户端视图的本地路径中,这就是您收到错误 file(s) not in client view 的原因。如果您想保留视图映射的原样,您需要将 file 移动到 /Users/test/workspace_foo/depot 下的路径中,以便能够 add 它。您在客户端相对于 /Users/test/workspace_foo/depot 创建的任何路径都将在相对于 //depot.

的服务器上创建

如果您希望 /Users/test/workspace_foo/file 映射到 //depot/file,请像这样更改您的视图:

Client: foo
Root: /Users/test/workspace_foo
View:
    //depot/... //foo/...

这意味着:

//depot/... <-> /Users/test/workspace_foo/...

因此:

/Users/test/workspace_foo/file <-> //depot/file

我为此苦苦挣扎。而且我不确定我是否终于理解了它现在起作用的真正原因。

对我来说,您似乎需要用三个点作为表达式来创建映射,以便能够创建更具体的映射。

Example Here

但是,在我添加 'three-dot-mapping' 之后,我终于可以毫不费力地添加我的所有文件了。让我有点疑惑的是,我再次打开Mapping后,我的'three-dot-mapping'就不见了,它只是给我显示了一个映射到我添加的文件夹。

据我了解,您需要

//depot/... <-> /Users/test/workspace_foo/...

映射以便能够创建一个

//depot/anotherFolder <-> /Users/test/workspace_foo/anotherFolder

映射。还要确保,首先您直接在 /Users/test/workspace_foo/....

下添加一个文件/文件夹

如果有人对此有进一步的解释,我期待听到他们。