Unity プロジェクト用のいくつかのデポを保存する予定の、会社用の Perforce サーバーをセットアップしました。P4Connect プラグインを使用して、p4 機能を Unity に統合しています。
ただし、ファイルの送信フェーズでいくつかの問題が発生しています。ポップアップに表示される正確なエラーは次のとおりです。
"Cannot submit files... Submit failed4, open P4V and make sure your files are in the default change list"
ファイルは実際にはすでにデフォルトの変更リストに含まれていますが、残念ながら、P4Connect ログ ファイルにはこのエラーに関して何も表示されません。
これらは、デポの作成から提出試行までの手順です。
- P4Admin を使用してサーバー上にローカル デポを作成します
- デポにアクセス/編集するのに十分な権限があることを確認します
- P4V を使用して、ルートがデポの 1 つと一致する新しいワークスペースを作成します。
- ウィンドウエクスプローラーを使用して、プロジェクトをワークスペースのルート内にコピーします
- Unity でワークスペースのプロジェクトを開きます
- プロジェクト設定で、目に見えるメタファイルを有効にします
- UnityアセットストアからP4Connectをインストールします
- 構成し、サーバーに接続できること、およびワークスペース名が P4V を使用して作成したものと一致することを確認します
- これまではすべてが機能し、プラグインは新しいファイルを認識していました
- すべてのファイルが新しいので、すべてのファイルを選択して「デポに追加」をクリックします
- [Perforce] タブで説明を入力し、[送信] をクリックします
- 前述のエラーが表示されます
プロジェクト全体ではなく単一のファイルを追加しようとしても、問題が発生します。
スローされる例外のコールスタックは次のとおりです。
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 と統合されておらず、全体の管理が複雑になるため、P4V の使用は避けたいと考えています。
私は何か間違ったことをしていますか、それとも誰かが同様の問題を抱えていて、これを修正する方法を知っていますか? Unity 5.1.1f1 と P4Connect 2.7 (実際には両方の最新バージョン) を使用しています。
ありがとう