2) Enhancements to StringView and a few other helper classes
3) New UE style ignore case comparison
4) Moved shared UHT definitions into a common C# file.
#rb jonathan.adamczewski
#rnx
#preflight 620e3cdc8b6428e701a24666
[CL 19033446 by Tim Smith in ue5-main branch]
The "logical" tree consists of nodes prefixed by a byte indicating its type (TreePackNodeType). Supported node types are Binary (leaf data with no external references), Object (a generic compact-binary encoded object), Directory (a directory structure which may reference other files or directories by name), and Concat (a concatenated sequence of Binary objects).
Nodes are packed together into "physical" blobs for storage, which default to 10mb in size and may reference other blobs. Each blob has an import and export table listing nodes they contain and other blobs they require nodes from. The hierarchy of blob dependencies also form an acyclic graph.
Physical blobs are reused between subsequent runs, with updated/replacement data being added into new blobs at the root of the graph. Physical blobs can be discarded and re-packed along with the new data once a costing heuristic indicates it is more efficient to do so. The costing heuristic takes into account the size of useful vs wasted space in a pack, its age, and an estimate for how costly it would be for machines to download it (see TreePack.GetCostHeuristic).
HordeAgent includes two new utility commands that can be use to create pack files from a tree of files or Perforce depot path, with the following syntax:
HordeAgent.exe archive create -source=[Local or Perforce Depot Path To Read From] -target=[Path to an output TXT file containing the hash of the root object; blobs are placed alongside it in the same directory] -base=[Path to a previous archive TXT file to generate a delta from]
HordeAgent.exe archive extract -input=[Archive root hash TXT file] -output=[Output directory]
#fyi Carl.Bystrom
#preflight 620aa313fa3ad732bb151326
[CL 18983187 by Ben Marsh in ue5-main branch]
if -s is passed through the type field will not be present.
#rnx
#jira none
#rb josh.engebretson
#preflight skip
[CL 18843871 by Ryan Hummer in ue5-main branch]
- JSON job descriptor contains storage/compute server settings.
- Supports auth using OAuth2 or bearer token.
- Added static extension methods to configure Horde Storage and Horde Compute via dependency injection.
#preflight none
[CL 18788867 by Ben Marsh in ue5-main branch]