2

我刚刚为我的公司设置了一个 Perforce 服务器,我将在其中为我们的 Unity 项目存储一些软件仓库。我正在使用 P4Connect 插件将 p4 功能集成到 Unity 中。

但是我在文件的提交阶段遇到了一些问题,弹出窗口上显示的确切错误是:

"Cannot submit files... Submit failed4, open P4V and make sure your files are in the default change list"

这些文件实际上已经在默认更改列表中,不幸的是 P4Connect 日志文件没有显示任何有关此错误的信息。

这些是我从创建 depot 到尝试提交的步骤。

  1. 我使用 P4Admin 在服务器上创建了一个本地仓库
  2. 我确保我有足够的权限来访问/编辑仓库
  3. 使用 P4V,我创建了一个新工作区,其根与仓库之一匹配
  4. 通过窗口资源管理器,我将我的项目复制到工作区的根目录中
  5. 我在工作区中使用 Unity 打开项目
  6. 在项目设置中,我启用可见元文件
  7. 我从统一资产商店安装 P4Connect
  8. 我对其进行了配置并确保它可以连接到服务器并且工作区名称与我使用 P4V 创建的名称相匹配
  9. 到目前为止一切正常,插件识别新文件
  10. 由于每个文件都是新文件,我选择每个文件并单击“添加到仓库”
  11. 在 Perforce 选项卡中,我输入描述并单击提交
  12. 出现前面描述的错误

即使我尝试添加单个文件而不是整个项目,也会出现问题。

这是抛出的异常的调用堆栈:

NullReferenceException: Object reference not set to an instance of an object
Perforce.P4.FileMetaData.op_Implicit (Perforce.P4.FileMetaData s) (at c:/tmp/53044412/depot/main/p4-connect/src/P4Bridge/p4api.net/FileMetaData.cs:866)
Perforce.P4.Changelist.ToString () (at c:/tmp/53044412/depot/main/p4-connect/src/P4Bridge/p4api.net/Changelist.cs:584)
Perforce.P4.Repository.SaveChangelist (Perforce.P4.Changelist change, Perforce.P4.Options options) (at c:/tmp/53044412/depot/main/p4-connect/src/P4Bridge/p4api.net/Repository.Changelist.cs:54)
Perforce.P4.Repository.CreateChangelist (Perforce.P4.Changelist change, Perforce.P4.Options options) (at c:/tmp/53044412/depot/main/p4-connect/src/P4Bridge/p4api.net/Repository.Changelist.cs:331)
Perforce.P4.Repository.CreateChangelist (Perforce.P4.Changelist change) (at c:/tmp/53044412/depot/main/p4-connect/src/P4Bridge/p4api.net/Repository.Changelist.cs:435)
P4Connect.Engine.SubmitFiles (P4Connect.PerforceConnection aConnection, System.String aChangeListDescription, System.Collections.Generic.List`1 aFiles) (at c:/tmp/53044412/depot/main/p4-connect/src/P4Connect/P4Connect/P4Connect.Engine.cs:818)
UnityEngine.Debug:LogException(Exception)
P4Connect.Engine:SubmitFiles(PerforceConnection, String, List`1) (at c:/tmp/53044412/depot/main/p4-connect/src/P4Connect/P4Connect/P4Connect.Engine.cs:825)
P4Connect.<>c__DisplayClassa:<SubmitFiles>b__8(PerforceConnection) (at c:/tmp/53044412/depot/main/p4-connect/src/P4Connect/P4Connect/P4Connect.PendingChanges.cs:917)
P4Connect.Engine:PerformConnectionOperation(Action`1) (at c:/tmp/53044412/depot/main/p4-connect/src/P4Connect/P4Connect/P4Connect.Engine.cs:753)
P4Connect.PendingChanges:SubmitFiles() (at c:/tmp/53044412/depot/main/p4-connect/src/P4Connect/P4Connect/P4Connect.PendingChanges.cs:917)
P4Connect.PendingChanges:OnGUI() (at c:/tmp/53044412/depot/main/p4-connect/src/P4Connect/P4Connect/P4Connect.PendingChanges.cs:744)
UnityEditor.DockArea:OnGUI()

如果我使用 P4V 提交这些文件,一切正常,但我更愿意避免使用 P4V,因为它没有与 Unity 集成,并且使整个事情变得更复杂管理。

我做错了什么还是有人有类似的问题并且知道如何解决这个问题?我正在使用 Unity 5.1.1f1 和 P4Connect 2.7(实际上是两者的最新版本)。

谢谢

4

0 回答 0