【问题标题】:Perforce file(s) not on client viewPerforce 文件不在客户端视图中
【发布时间】:2021-10-17 11:58:57
【问题描述】:

我希望有人能指出我正确的方向吗?我正在尝试设置第二个软件仓库,但每当我尝试添加文件时,它都会显示此消息“不在客户端视图中”。

对于一个虚幻项目,主库已经启动并运行良好,但我不知道如何设置第二个库。我确保在创建新工作区时排除主库树,并确保将其指向正确的工作区目录。

【问题讨论】:

  • 我想我成功了!如果您单击“编辑工作区”来比较主要和次要工作区,我注意到它是如何在 // 之前和之后两次添加仓库名称的。在工作区映射下拉列表中。我删除了多余的部分,所以它看起来与主要部分和宾果游戏相似!没有错误,文件已提交到仓库。
  • 如果您将实际的客户端视图作为问题的一部分发布会很有帮助,但我怀疑您修复它的方式,您无法在主文件中提交(或同步)文件现在仓库...

标签: perforce


【解决方案1】:

您的客户端视图定义了哪些 depot 文件映射到您的工作区,以及它们映射到的位置。如果您的客户端视图如下所示:

Root: C:\Perforce

View:
    //apples/... //your-client/apples/...
    //pears/... //your-client/pears/...

applespears depot 都映射到您的工作区,如下所示:

//apples -> C:\Perforce\apples
//pears  -> C:\Perforce\pears

如果您尝试添加一个不在这两个位置的本地文件,您将收到错误消息:

C:\Perforce>p4 add gravenstein.jpg
gravenstein.jpg - file(s) not in client view.

这是因为根据您的观点,该文件不属于任何一个仓库。您需要将文件放在您已映射的位置,以便 Perforce 可以确定它进入哪个仓库(以及哪个目录)。

C:\Perforce>move gravenstein.jpg apples
        1 file(s) moved.
C:\Perforce>p4 add apples\gravenstein.jpg
//apples/gravenstein.jpg#1 - opened for add

在您的评论中,您提到删除“多余的部分”。假设您将视图更改为:

Root: C:\Perforce

View:
    //apples/... //your-client/apples/...
    //pears/... //your-client/...

现在您的客户端根目录直接映射到pears depot,而apples depot 不再映射到任何地方!

C:\Perforce>p4 add pippin.jpg
//pears/pippin.jpg#1 - opened for add
C:\Perforce>p4 add apples\honeycrisp.jpg
//pears/apples/honeycrisp.jpg#1 - opened for add

这是因为后面的行总是优先。通过翻转视图行的顺序,您可以使 大部分 工作区映射到 pears,但本地 apples 目录有一个例外:

View:
    //pears/... //your-client/...
    //apples/... //your-client/apples/...
C:\Perforce>p4 add bartlett.jpg
//pears/bartlett.jpg#1 - opened for add
C:\Perforce>p4 add apples\granny_smith.jpg
//apples/granny_smith.jpg#1 - opened for add

但是,我通常建议将并行库路径(例如两个顶级库)由两个并行的本地目录(默认)表示,而不是将它们相互嵌套——这样更容易推理什么如果 depot 和工作空间尽可能相互镜像,则文件将放在哪里。请记住,您需要将本地文件放在要添加它们的软件仓库所在的目录中。

【讨论】:

    猜你喜欢
    • 2013-06-25
    • 2010-10-31
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多