#rb none
#jira UE-183529
#rnx
#preflight 643fc10ba35280ed4f6a5590
- If p4 print is run on a path for a depot that either does not exist on the server or cannot be seen due to permissions then the server will return "-must refer to client" along with the name of the current client spec. This can be quite misleading since p4 print does not actually need a client.
-- To improve things for the user we can replace the error message provided by the p4 server with "no such depot"
[CL 25103494 by paul chipchase in ue5-main branch]
#rb none
#jira UE-183529
#rnx
#preflight 643e6671b91c130758304d30
- Added code documentation
- Renamed ::AddFileData to ::__Internal_AddFileData and documented that it is for internal use in the source control api. This is a standard problem with our operations being both input and output structures and needs a better solution.
- Moved ::GetFileData to the cpp to reduce the amount of code in the header file.
[CL 25083228 by paul chipchase in ue5-main branch]
- Failed if user had multiple p4 tickets
- Failed if default p4 username didn't match the provided username in UE
#jira UE-181982
#rb paul.chipchase
#preflight 643061621d61ecec3b63c465
[CL 24970980 by jordan hoffmann in ue5-main branch]
#rb wouter.burgers
#jira UE-181418
#preflight 642ece61df6c5c78fc9b99c9
- Added FSourceControlResultInfo::EAdditionalErrorContext that describes additional info about errors that the operation might have encountered that the caller can poll for rather than trying to parse error strings.
-- NOTE that we cannot enforce this info to be provided by source control provider implementations so this additional info should only be used to improve error messages.
-- Initially we support the connection to the provider failing and the connection to the provider dropping mid operation.
- Moved FSourceControlResultInfo to its own code files.
- I wanted to move the implementation of FSourceControlResultInfo::Append to the cpp, but this causes linker problems even with SOURCECONTROL_API as some modules are not including source control properly. For now I have left it in the header file and will look into this in another code pass.
[CL 24943799 by paul chipchase in ue5-main branch]
#rb Wouter.Burgers
#jira UE-173524
#rnx
#preflight 642e806dda7f9583702d81e4
- FPerforceGetFileWorker::Execute doesn't actually do any perforce work directly, it creates a new FPerforceSourceControlRevision and lets that object do the perforce work. So the connection that FPerforceGetFileWorker was making was never used and FPerforceSourceControlRevision would then create a second connection.
[CL 24941987 by paul chipchase in ue5-main branch]
* Aids in testing this feature
* Use CMD: SourceControl.Perforce.IdleConnectionDisconnectSeconds = <seconds>
#jira UE-173884
#rb johan.duparc
#preflight 642af82e6a37fb35e9bd0e42
[CL 24905944 by logan buchy in ue5-main branch]
* Option to check in an asset from the Content Browser Source Control Context Menu is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Option to check in an asset from the Scene Outliner Source Control Context Menu is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Ability to uncheck files in the Submit Files Window is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Option to revert the writable flag on an asset in the Content Browser Source Control Context Menu is now enabled if the SCC uses checkout instead of if it uses File Revisions (like the 'Make Writable' option)
#jira UCS-6630
#rb brooke.hubert, wouter.burgers
#lockdown jeanmichel.dignard
#preflight 640e6b41482188d710ff8316
[CL 24724061 by marco anastasi in ue5-main branch]
A connection to the perforce server can consume a large amount of memory on the server. This change is to add a timeout to any persistent connections
in order to conserve this memory.
To do so, a connection tracks the platform time of the last successful communication. The provider checks the persistent connection it has each frame and if
the last successful connect exceeded the timeout, then the connection is closed. A new persistent connection will be established next time one is required.
The timeout is set as a hardcoded value for now.
#jira UE-173884
#rb Ronald.Koppers
#preflight 64122ee5af3fc352929f8e3b
[CL 24665411 by logan buchy in ue5-main branch]
Add -fastexit parameter to terminate process instead of shutting down engine.
Turn off build target features to build less code (total dll size reduced from 56 MB to 46 MB).
Disable external profiler supports (skips loading of some dlls).
Don't spawn any reserve workers (by adding a DefaultEngine.ini for UnrealPak).
Make UnrealPAk compile in Test config (by fixing compile error in PerforceConnection.cpp).
#rb carlmagnus.nordin
#rnx
#preflight 63e5eaf66473b534f14e377b
[CL 24118943 by pj kack in ue5-main branch]
#rb Brooke.Hubert, Patrick.Laflamme
#rnx
#preflight 63d7927df62671520156e69d
- CL 23859876 introduced optimizations that consider a filepath to be invalid if the path contains consecutive path separators (DirA//DirB for example instead of DirA/DirB) and although no issues were seen when testing we fairly quickly ran into a user facing errors when trying to submit work from the editor.
- The users client spec root had a '\' at the end of it where as most internal devs do not. This in turn caused problems when parsing file info from source control as the code was assuming that the client spec root had no trailing separator and was adding one.
- We now normalize the client spec root after we parse it via a call to FPaths::NormalizeDirectoryName which should enforce that the root path match all our usual expectations.
[CL 23945309 by paul chipchase in ue5-main branch]
* Added IWYUSupport.KeepAsIsForNow on a bunch of plugins that requires work to be able to run iwyu
#preflight skipped
#rb none
[CL 23898272 by henrik karlsson in ue5-main branch]
also made SPerforceSourceControlSettings::GetPassword() fail silently when on a non-slate thread rather than asserting
#jira UE-169786
#jira UE-172421
#jira UE-173530
#rb none
#preflight 63d197fe45795e7d5c0a2ef2
[CL 23863403 by jordan hoffmann in ue5-main branch]
#rb brooke.hubert
#jira UE-172649
#rnx
#preflight 63986274c16855964d9cfc76
- If we queried the state of a file using the depot path it would parse correctly but internally record the state as 'DontCare' meaning that it has no special state but the change in 23468037 causes files with that state to be classed as not under source control.
- The root problem that 23468037 was fixing was that when querying a file that does not exist (using client paths) we expect the file state to be set to 'NotInDepot' but for a file in a unit test this state was coming back as 'DontCare'. This was due to the imaginary file was being queried as a depot location (Engine root) where most users do not have permission to add things, so instead of an error message indicating that the file does not exist, the server was returning an error relating to permissions.
- We can fix this by checking for the permission error and adding that to the list of errors that result in us setting the 'NotInDepot' state. Which in turn allows us to remove the change from 23468037 that was blocking the depot path queries.
- There is an argument to be made that we should not allow file states to be queried via depot paths and doing so should raise an error. To allow that we would need to extend the source control api with a way to query files server state which would be out of scope for a release hot fix.
[CL 23531470 by paul chipchase in ue5-main branch]
Update the default set of revision control icons
Create FRevisionControlStyleManager to manage the currently active revision control style and add a default style that is used by all providers
#rb lauren.barnes, brooke.hubert
#preflight 639364ee67018b14b5fb9891
[CL 23466976 by aditya ravichandran in ue5-main branch]