- Implementation of this logic exists within the p4 library, but is required to be reimplemented by any custom filesystem implementations.
- Add header for gzip.h utility class used by regular implementation so we can duplicate the logic for our overriden impl.
- Move output folder for compiled binaries under Engine/Binaries.
#preflight none
[CL 19309319 by Ben Marsh in ue5-main branch]
* Support for creating workspaces using native P4 client, so "ugs init" now works correctly.
* Output a list of files which need to be clobbered when syncing, and add a -Clobber option to confirm intent.
* Fix exception accessing folders that user does not have permissions to when detecting a new workspace.
#preflight none
[CL 18618091 by Ben Marsh in ue5-main branch]
This requires special handling for the native Perforce connection, since it returns information as message records that the client formats as strings through an "Error" object. To work around this, the C++ library converts such messages into stat records that are more easily parsed by C# code.
[CL 17526529 by Ben Marsh in ue5-main branch]
Performance has been tested against the P4 .NET API and the command line client by performing a fstat of non-deleted files in //UE5/Main.
EpicGames.Perforce (this library): 47s
Command line client piping to file: 59s
P4 .NET API: ~40 minutes
[CL 17347502 by Ben Marsh in ue5-main branch]