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/...
.
下添加一个文件/文件夹
如果有人对此有进一步的解释,我期待听到他们。
我已经通过 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/...
.
如果有人对此有进一步的解释,我期待听到他们。