Commit Graph

14 Commits

Author SHA1 Message Date
Ben Marsh
cffdcc436e UGS: Stop finalizer in NativePerforceConnection waiting for a thread.
#preflight none

[CL 20594033 by Ben Marsh in ue5-main branch]
2022-06-10 08:54:31 -04:00
Ben Marsh
68b1b97e52 Fix differences in serialization behaviors between native and legacy Perforce clients.
IPerforceConnection now contains a CreateRecord method to create a PerforceRecord, which adds numbered fields for lists in the legacy client, and unnumbered fields for the native client.

#preflight none

[CL 20568223 by Ben Marsh in ue5-main branch]
2022-06-08 20:01:33 -04:00
fredric echols
7715a7c714 UGS work-around for hang on shutdown: allow the runtime to terminate background threads.
#rb Ben.Marsh
#preflight 629e2886ed518278422f5f72

[CL 20522255 by fredric echols in ue5-main branch]
2022-06-06 12:32:23 -04:00
Ben Marsh
9f3f98819e Horde: Update gRPC packages for Horde.Agent to latest version for Apple silicon support.
#preflight none

[CL 20001540 by Ben Marsh in ue5-main branch]
2022-04-30 21:28:54 -04:00
Ben Marsh
4f9c7d5b2c EpicGames.Perforce: Fall back to running external process when running on Apple silicon. We don't have a native P4 library for arm64 yet.
#preflight none

[CL 20001459 by Ben Marsh in ue5-main branch]
2022-04-30 21:11:08 -04:00
Ben Marsh
5847802718 UGS: Fix marshalling of UTF8 strings to native Perforce library.
#preflight none

[CL 19765559 by Ben Marsh in ue5-main branch]
2022-04-14 18:59:08 -04:00
Ben Marsh
508c144999 Horde: Last batch (hopefully) of static analysis fixes/suppressions.
#preflight 623e144c8073508cfc117a87

[CL 19517822 by Ben Marsh in ue5-main branch]
2022-03-25 15:35:47 -04:00
Ben Marsh
892805279c P4: Add support for intercepting I/O through native Perforce library. This allows streaming sync data directly into memory, avoiding any writes to disk.
#preflight 620a741d17632e948459cb9d

[CL 18979717 by Ben Marsh in ue5-main branch]
2022-02-14 10:37:38 -05:00
Ben Marsh
eddef12371 UGS-CLI: Various improvements/fixes.
* 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]
2022-01-14 10:51:47 -05:00
Ben Marsh
e7ab127649 [CS] Various improvements to Perforce library.
- Removed functionality to set environment variables through the IPerforceConnection object. This is now handled via PerforceEnvironment.
- Added support for logging in using the native Perforce connection implementation.
- Started migrating methods that return a list of responses to return an IAsyncEnumerable instead. This makes it much easier to perform stream processing on requests that return a lot of data.
- Added the "p4 depot" command.
- Added the "p4 have" command.
- Added the "p4 opened" command.
- Added the "p4 stream" command.
- Added the "p4 users" command.
- Added support for printing files to a temporary file, and for p4 print commands returning metadata along with the payload in its response.
- Fixed stream corruption using native Perforce library if a record did not completely fit within the output buffer.

#preflight none

[CL 18504069 by Ben Marsh in ue5-main branch]
2022-01-03 17:18:56 -05:00
Ben Marsh
1f185de5a4 Combine interface for creating native and external Perforce client connections.
- PerforceEnvironment class now allows querying the state of Perforce environment variables in a client agnostic way. (Supports system environment variables on Mac/Linux, and registry on Win32. Also reads settings from any P4ENVIRO file, and P4CONFIG files when initialized with a directory.)
- Connection settings are now stored in a PerforceSettings object, with a read-only IPerforceSettings interface. Both clients can be initialized through the same parameter block.
- A connection can be created using the PerforceConnection.CreateAsync() method. Specifying the IPerforceSettings.PreferNativeClient will create a NativePerforceConnection implementation where possible.

[CL 18464429 by Ben Marsh in ue5-main branch]
2021-12-14 21:31:40 -05:00
Ben Marsh
72dbf9aa4e Enable code analysis (and fix warnings) for EpicGames.Perforce.
#preflight 61b7b75dc65177a67488ca5e

[CL 18449150 by Ben Marsh in ue5-main branch]
2021-12-13 16:50:25 -05:00
Ben Marsh
0f5d4b412d Add support for setting passwords on the native client at creation time.
[CL 18113267 by Ben Marsh in ue5-main branch]
2021-11-09 16:41:23 -05:00
Ben Marsh
88aff39b3b Horde: Add native implementation of IPerforceConnection.
[CL 17526270 by Ben Marsh in ue5-main branch]
2021-09-15 16:36:49 -04:00