お世話になっております。
現在PCBに含まれるPDBをStripしないように運用できるのかBuildGraphを工夫して確認しています。
その中で表題にあるとおり、UnrealGameSyncのOptions > Sync Precompiled BinariesにあるEditorとEditor PCBsの処理の違いについて気になったので投稿致しました。
■ 各バージョン
- UnrealGameSync Application version: 1.0.0
- Horde Server : 5.6.1-0
- CL 44394996 + CL 45227533(Magick.NET VersionFix)
- Perforce Server : 2025.1
■ 前提
- Engine自体への改変を行っていません。
- PerforceのprotectをStrip前後でいじったりはしておらず、開発ストリームもPCB格納ストリームも読み取り・書き込み可能なアカウントを使用しています。
- Hordeの認証はAnonymousで利用しています。
- PCBはIncremental Build(Engine/Build/Graph/Examples/BuildEditorAndTools.xml)を用いて作成しています。
- 開発ストリームにサブミットされPCBが作成されたCLとして 169, 173, 174, 175, 177, 223, 227 などがあります。
- PCBの格納ストリームには以下の通り格納されており、「フルサイズ」はPDBをStripしていないものになります。
※ リビジョンに空きがあるのは、同CLのPCBが再アップロードされたためと思われます
リビジョン9: CL169 : 変更前(Strip)
リビジョン11: CL173 : 変更前(Strip)
リビジョン12: CL174 : 変更前(Strip)
リビジョン13: CL175 : 変更前(Strip)
リビジョン16: CL177 : 変更前(Strip)
リビジョン17: CL223 : 変更前(Strip)
リビジョン19: CL227 : 変更後(フルサイズ)
■ 現状手元での動作
[ Editorを選択し、最新CL(227)をSync ]
最新CL(227)のPCBがPerforceからp4 printを用いて取得され、zipmanifestに基づきローカルワークスペース上に展開されています。
これによりPDBがフルサイズになっていることを確認しました。
[ Editor PCBsを選択し、最新CL(227)をSync ]
CL177のPCBがHorde ArtifactIDを用いて取得され、zipmanifestに基づきローカルワークスペース上に展開しているように見えます。
最新CLのPCBが取得されなかったため、PDBがフルサイズにならないことを確認しました。
上記のように、EditorとEditor PCBsで取得するPCBが変わることに気付きましたが
これは意図した動作でしょうか?
また、それぞれ取得先は違うもののPCBを取得する目的は一緒だと思っています。
どういう目的で分かれているのかも教えていただけないでしょうか。
■ _archiveToChangeNumberToArchiveKeyの中身について
WorkspaceControl.csのGetArchiveForChangeNumberによって、
EditorにはCL毎に取るべきPerforceファイルのPath+リビジョンが記載されたList
Editor PCBsにはCL毎に取るべきHorde ArtifactのIDが記載されたList
が_archiveToChangeNumberToArchiveKeyに保管されています。
また、Sync時にはarchiveChannelとchangeNumberの指定によって、取得すべきPathやArtifactIDが返されているように見えます。
しかし、手元環境を見てみると
Editorに紐づく全てのCLにおいて、最新CL(227)のPerforceファイルのPath+リビジョンが記載されていました。
※ 先日まで直近7件のみのListとなっていましたが、本日になって11件~14件までListに追加される挙動となっていました
[ 例 ]
CL 169 : //stream/hogehoge-binaries/++hogehoge+stream-projectEditor.zip#19
CL 177 : //stream/hogehoge-binaries/++hogehoge+stream-projectEditor.zip#19
CL 227 : //stream/hogehoge-binaries/++hogehoge+stream-projectEditor.zip#19
[Image Removed]
一方Editor PCBsの方は全てのCLにおいて、CL177のArtifactIDが記載されていました。
(CL177のものかどうかはHorde ServerのAPIで確認しました)
[ 例 ]
CL 169 : 68ad***********c52126
CL 177 : 68ad***********c52126
CL 227 : 68ad***********c52126
[Image Removed]
本来これらは各CLに沿ったArtifactIDやPerforceファイルのPath+リビジョンが記載されているListなのでは?と思ってみていたのですが、同じ内容になっているのは想定した動作でしょうか?