Commit Graph

333 Commits

Author SHA1 Message Date
Ben Marsh
3355c11462 Client-facing interface for Horde.Storage.
Idea is that tools could interface with Horde Storage use this API, with concrete implementations that use HTTP, gRPC or (in the case of legacy applications within Horde.Build) communicate internally within the same process to store the data.

Errors should be surfaced using exceptions.

#preflight none

[CL 18677234 by Ben Marsh in ue5-main branch]
2022-01-20 12:50:35 -05:00
Ben Marsh
b900bab8d1 P4VUtils: Fix compile errors after recent changes to EpicGames.Perforce library.
#preflight none
#fyi Andrew.Firth

[CL 18643289 by Ben Marsh in ue5-main branch]
2022-01-18 13:28:42 -05:00
Ben Marsh
32ab8d1b88 CS: Support for serialization and deserialization of polymorphic class hierarchies into compact binary.
The base class in a hierarchy must have the [CbPolymorphic] attribute, and derived classes must have the [CbDiscriminator] attribute, giving an identifier to indicate the derived type.

#preflight none
#p4v-preflight-copy 18635755
#preflight 61e6d83a7f0c4b5aad620c89

[CL 18640150 by Ben Marsh in ue5-main branch]
2022-01-18 10:30:25 -05:00
Ben Marsh
17fda19db7 CS: Support for serialization and deserialization of polymorphic class hierarchies.
The base class in a hierarchy must have the [CbPolymorphic] attribute, and derived classes must have the [CbDiscriminator] attribute, giving an identifier to indicate the derived type.

#preflight none
#preflight 61e600aa3778a195de94dc27

[CL 18635774 by Ben Marsh in ue5-main branch]
2022-01-17 18:52:44 -05:00
Ben Marsh
edb86dcf5b Horde: Fix build error.
#preflight none

[CL 18630244 by Ben Marsh in ue5-main branch]
2022-01-16 18:52:58 -05:00
Ben Marsh
9e6e68ba17 CS: Add overloads for commonly serialized compact binary types.
#preflight 61e4a67d7b0f77175a5d6621

[CL 18630220 by Ben Marsh in ue5-main branch]
2022-01-16 18:26:30 -05:00
Ben Marsh
5e131f7ddc CS: Rename compact binary files to match the classes they contain.
#preflight none

[CL 18628533 by Ben Marsh in ue5-main branch]
2022-01-15 13:33:44 -05:00
Ben Marsh
b363c7d2ae Horde: Fix revert of files in workspaces not working correctly (missing path specification), and exception parsing OpenedRecord entries with ShortOutput option specified.
#preflight none

[CL 18628510 by Ben Marsh in ue5-main branch]
2022-01-15 13:27:02 -05:00
Ben Marsh
40c9e7cb50 Horde: Fix typo.
#preflight none

[CL 18623460 by Ben Marsh in ue5-main branch]
2022-01-14 16:23:06 -05:00
Ben Marsh
1ea7fefd32 Horde: If a call to p4 login doesn't return a proper record, call p4 login -s to get one.
#preflight none

[CL 18623341 by Ben Marsh in ue5-main branch]
2022-01-14 16:17:31 -05:00
Ben Marsh
fd1f1f0c3b Restore CL 18614625 with fix for hang/memory leak.
#preflight none
#fyi Jack.Porter

[CL 18618782 by Ben Marsh in ue5-main branch]
2022-01-14 11:34:46 -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
Jack Porter
6cbd27e7e6 Back out CL 18601195 due to infinite hang/memory eat in UBT when building IOS or TVOS
#jira UE-139211
#preflight none
#rb Will.Damon
#fyi Ben.Marsh

[CL 18614625 by Jack Porter in ue5-main branch]
2022-01-13 23:40:02 -05:00
Ben Marsh
e031a88392 CS: Changes to ManagedProcess to better support cancellation on Mac/Linux when using merged output pipes.
- Data read from stdout/stderr is now writen to buffers posted in a Channel<T>, which correctly supports await and cancellation (unlike AsynchronousPipe).
- Public StdOut/StdErr streams are now a custom stream implementation that reads from the channel and copies data into the output buffer.
- Buffer objects are sized at 1024 bytes and pooled, which should be enough to accomodate most output lines without splitting.
- When the process is disposed, we now terminate the entire process tree. The tasks left reading from the child process terminate asynchronously.

Tested in a command line and WinForms app (by forcing SupportsJobObjects to return false) with asynchronous and synchronous reads to ensure code does not deadlock.

#preflight 61e062b3ed50181feb511e39

[CL 18601195 by Ben Marsh in ue5-main branch]
2022-01-13 14:17:35 -05:00
rolando caloca
887df66181 UE5.0 - Only check for platform SDKs once in UBT when compiling multiple targets
#rb Joe.Kirchoff, Jonathan.Adamczewski
#jira none
#preflight 61ddd33f3d108f7804f64d4c

#ROBOMERGE-AUTHOR: rolando.caloca
#ROBOMERGE-SOURCE: CL 18583364 in //UE5/Release-5.0/... via CL 18583395 via CL 18583399
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18583407 by rolando caloca in ue5-main branch]
2022-01-12 08:34:45 -05:00
Ben Marsh
4cc55182e9 UGS: Add a filter command to allow adding and remove categories to sync.
#preflight none

[CL 18562812 by Ben Marsh in ue5-main branch]
2022-01-10 13:44:32 -05:00
Ben Marsh
4974dfe934 UGS: Add a command for listing submitted changes ("ugs changes -count=123 -lines=3")
#preflight none

[CL 18559173 by Ben Marsh in ue5-main branch]
2022-01-10 09:33:30 -05:00
Ben Marsh
a40c4c2c8b UGS: Support for running UGS CLI on Mac.
#preflight none

[CL 18554839 by Ben Marsh in ue5-main branch]
2022-01-08 15:04:19 -05:00
UnrealBot
c47e81b2cb Branch snapshot for CL 18531810
[CL 18531810 in ue5-main branch]
2022-01-06 16:44:09 +00:00
Ben Marsh
16e0f22702 CS: Add support for setting properties via the CommandLineArguments class.
#preflight none

[CL 18530605 by Ben Marsh in ue5-main branch]
2022-01-06 09:05:06 -05:00
UnrealBot
2987349d36 Branch snapshot for CL 18514113
[CL 18514113 in ue5-main branch]
2022-01-05 20:41:17 +00:00
Ben Marsh
791885c855 UGS: Fix build errors for UnrealGameSyncLauncher and port to use new P4 library.
#preflight none

[CL 18518998 by Ben Marsh in ue5-main branch]
2022-01-05 10:22:48 -05:00
Ben Marsh
34c1389331 UGS: Add some more #nullable annotations.
#preflight none

[CL 18515090 by Ben Marsh in ue5-main branch]
2022-01-04 20:01:23 -05:00
Ben Marsh
7a9e8c8b5c UGS: Significant refactor of UGS internals.
- Now uses the custom C++ Perforce library developed for Horde. This removes dependencies on an installed P4.EXE tool, improves performance, and paves the way to cross-platform support via command line invocations.
- As part of the migration to the new Perforce library, the codebase now uses async/await extensively instead of background threads, and supports a proper cancellation path rather than aborting threads.
- ILogger is now used for writing log files.
- Started converting to use of nullable annotations.

#preflight none

[CL 18511154 by Ben Marsh in ue5-main branch]
2022-01-04 14:03:17 -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